pack TypeCallsite and TypeCompartment better

RESOLVED FIXED in mozilla15

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: froydnj, Assigned: froydnj)

Tracking

unspecified
mozilla15
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
TypeCallsite is laid out like so:

    JSScript *script;
    jsbytecode *pc;

    /* Whether this is a 'NEW' call. */
    bool isNew;

    /* Types of each argument to the call. */
    TypeSet **argumentTypes;
    unsigned argumentCount;

    /* Types of the this variable. */
    TypeSet *thisTypes;

    /* Type set receiving the return value of this call. */
    TypeSet *returnTypes;

which, on 64-bit hosts, introduces padding after 'isNew' and 'argumentCount'.  TypeCompartment (which has many more members and comments, so I'm not going to quote it here) has similar problems and can even be slimmed down on 32-bit hosts as well.  Patch coming up.
(Assignee)

Comment 1

5 years ago
Created attachment 615794 [details] [diff] [review]
patch

The changes for TypeCallsite are trivial.

The changes for TypeCompartment are a little more complex, as I was attempting to keep the /* Constraint solving worklist structures */ block together, while packing the booleans together for maximum effect.
Attachment #615794 - Flags: review?(bhackett1024)
Attachment #615794 - Flags: review?(bhackett1024) → review+
(Assignee)

Comment 2

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/de945dddcadf
Assignee: general → nfroyd
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla15
https://hg.mozilla.org/mozilla-central/rev/de945dddcadf
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.