Closed Bug 746238 Opened 9 years ago Closed 9 years ago

pack TypeCallsite and TypeCompartment better

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla15

People

(Reporter: froydnj, Assigned: froydnj)

Details

Attachments

(1 file)

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.
Attached patch patchSplinter Review
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+
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
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.