Closed Bug 1526947 Opened 8 months ago Closed 8 months ago

Simplify aliased var code in the JITs

Categories

(Core :: JavaScript Engine: JIT, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla67
Tracking Status
firefox67 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file)

EnvironmentObjects have the nice invariant that ec.slot < MAX_FIXED_SLOTS is equivalent to isFixedSlot(ec.slot). This means we can remove the pretty slow EnvironmentCoordinateToEnvironmentShape calls in IonBuilder and BaselineCompiler, because those are only used to determine shape->numFixedSlots().

Then after this it becomes much easier to support these ops in the Baseline interpreter.

Environment shapes always use the max number of fixed slots before using
dynamic slots (see EmptyEnvironmentShape). We can take advantage of this in
the JITs and eliminate the calls to EnvironmentCoordinateToEnvironmentShape.

Pushed by jdemooij@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9b436568b978
Simplify aliased var code in the JITs. r=tcampbell
Component: JavaScript Engine → JavaScript Engine: JIT
Priority: -- → P1
Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
You need to log in before you can comment on or make changes to this bug.