Closed Bug 779860 Opened 10 years ago Closed 10 years ago

IonMonkey: OSR can cause lots of stack moves

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 780973

People

(Reporter: jandem, Assigned: jandem)

References

(Blocks 1 open bug)

Details

(Whiteboard: [ion:p2])

Attachments

(1 file)

652 bytes, application/x-javascript
Details
Attached file Micro-benchmark
If we enter an inner loop using OSR, the outer loop may contain a huge movegroup. This happens when the input to an OSR-phi is live after the phi itself, so that regalloc allocates another stack slot or register for the phi.

The attached micro-benchmark demonstrates the problem, I get these numbers:

JM  : 1780 ms
Ion : 3600 ms

If I remove all the a* variables from the return statement, the problem goes away (fewer overlapping live ranges so the phi can reuse the input allocation) and Ion gets 1900 ms (1300 ms with range analysis on).

I'm not sure how much fixing this will help SS-fannkuch though.
Bug 780973 should have fixed the most problematic cases like the attached micro-benchmark. Let's reopen or file a new bug if that's not sufficient.
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Resolution: FIXED → DUPLICATE
Duplicate of bug: 780973
You need to log in before you can comment on or make changes to this bug.