Closed Bug 670633 Opened 11 years ago Closed 11 years ago

IonMonkey: Add spill store elimination to linear scan register allocator

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: adrake, Assigned: adrake)

References

Details

Attachments

(1 file)

Wimmer's paper reports a 3-4% win out of this, so it seems worthwhile to do.
Attached patch Patch v0Splinter Review
This patch does two things:

1) In LinearScanAllocator::spill(), if there is a canonical spill location,
   spill to that instead of allocating a new one. When a memory location is
   assigned, make that the canonical spill location (i.e. the argument slots on
   the stack).

2) In the reification pass, if there is a redundant store to the canonical spill
   location (i.e. any but the first), drop it on the floor.
Attachment #548745 - Flags: review?(dvander)
Comment on attachment 548745 [details] [diff] [review]
Patch v0

Review of attachment 548745 [details] [diff] [review]:
-----------------------------------------------------------------
Attachment #548745 - Flags: review?(dvander) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/7bd4ed0a2285
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.