IonMonkey: Greedy regalloc bug around calls

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: dvander, Assigned: dvander)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

Currently failing jit-test/tests/basic/bug532823.js and a bunch of others. We take the following bailout and then die in the interpreter with some bogus jsval.

Current resume point 0x858d0d8 details:
    taken at block 3 entry
    pc: 0x858bddf
    slot0: parameter1-vn2
    slot1: parameter3-vn4
    slot2: phi11-vn36
    slot3: phi13-vn38
[Snapshots] Generating LIR snapshot 0x8591d20 from MIR (0x858d0d8)
[Snapshots] Assigning snapshot 0x8591d20 to instruction 0x8591ce0 (callgeneric)
[Snapshots] Encoding snapshot 0x8591d20 (nfixed 4) (exprStack 0)
[Snapshots]     slot 0: value (t=144, d=140)
[Snapshots]     slot 1: value (t=152, d=edi)
[Snapshots]     slot 2: value (t=124, d=120)
[Snapshots]     slot 3: int32 (stack 108)
[Snapshots]     total size: 24 bytes (start 18)
Created attachment 566700 [details] [diff] [review]
fix

This fixes almost all of the failures. The snapshot has to be filled at the bottom of the instruction, not the top. This isn't ideal, it'll introduce more spills, but at least it's correct.
Attachment #566700 - Flags: review?(sstangl)

Updated

6 years ago
Attachment #566700 - Flags: review?(sstangl) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/043ea5aee853
Status: ASSIGNED → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.