Closed Bug 1640107 Opened 5 years ago Closed 4 years ago

Warp: set implicitly-used flag correctly for unused IC inputs

Categories

(Core :: JavaScript Engine: JIT, task, P2)

task

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox78 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

We were aware of this issue but now with Math.ceil inlining it's causing a test failure on the ceil.js jit-test, so it's time to implement this. We also need to port the debug asserts IonBuilder has to catch this.

It's tempting to call this forEachArg instead, but it's not just iterating over
the args Vector...

This also ports the PoppedValueUseChecker from IonBuilder. I had to rename it to
WarpPoppedValueUseChecker to respect the C++ One-Definition Rule. It's a bit
simpler than the IonBuilder version and uses BytecodeLocation.

The transpiler now sets the ImplicitlyUsed flag for unused input operands. The
code for that is pretty subtle, but this is the most efficient (and Just Works)
way to do it that I could think of.

Depends on D76482

Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9cc94ab6a8bd part 1 - Add a forEachCallOperand helper to CallInfo. r=iain https://hg.mozilla.org/integration/autoland/rev/692e3068ef10 part 2 - Set ImplicitlyUsed flag correctly for unused IC inputs when transpiling. r=iain
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78
Regressions: 1647054
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: