IonMonkey: Be a little lazier about allocating registers in the linear scan register allocator

RESOLVED FIXED

Status

()

RESOLVED FIXED
7 years ago
7 years ago

People

(Reporter: adrake, Assigned: adrake)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

7 years ago
We allocate registers for intervals which really, really don't need them. A heuristic to prevent this from occurring could eliminate some particularly stupid moves.
(Assignee)

Comment 1

7 years ago
Created attachment 548749 [details] [diff] [review]
Patch v0

This adds a tiny cheap check right before free register allocation. If there are no real (non-KEEPALIVE) uses coming up, and a canonical spill location is already there (no code would be emitted to do the spill), then spill.

There may be an argument for this even if there is no existing canonical spill location, since it's going to get spilled as soon as a register is needed later, anyway. Thoughts?
Attachment #548749 - Flags: review?(dvander)
Comment on attachment 548749 [details] [diff] [review]
Patch v0

Review of attachment 548749 [details] [diff] [review]:
-----------------------------------------------------------------
Attachment #548749 - Flags: review?(dvander) → review+
(Assignee)

Comment 3

7 years ago
http://hg.mozilla.org/projects/ionmonkey/rev/3be9cb4bc96a
Status: ASSIGNED → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.