IonMonkey: Free allocated stack slots at the end of intervals in the register allocator

RESOLVED FIXED

Status

()

Core
JavaScript Engine
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
Currently stack slots once assigned are not reused, this is a tracking bug for the appropriate FIXME in the code.
(Assignee)

Updated

7 years ago
Assignee: general → adrake
Blocks: 657816
(Assignee)

Comment 1

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

Applies on top of patch v0 from bug 657816.
Attachment #543337 - Flags: review?(dvander)
Comment on attachment 543337 [details] [diff] [review]
Patch v0

Review of attachment 543337 [details] [diff] [review]:
-----------------------------------------------------------------

Nice, this patch invalidates most of my comment about |handled| in the base patch - if it is unused in release code though, it still deserves an #ifdef DEBUG

::: js/src/ion/RegisterAllocator.cpp
@@ +782,5 @@
> +    LAllocation *alloc = interval->getAllocation();
> +    JS_ASSERT(!alloc->isUse());
> +
> +    if (alloc->isStackSlot())
> +        stackAssignment.freeSlot(alloc->toStackSlot()->slot());

This should check whether the slot is double or not and call freeDoubleSlot instead.
Attachment #543337 - Flags: review?(dvander) → review+
(Assignee)

Comment 3

7 years ago
http://hg.mozilla.org/users/danderson_mozilla.com/ionmonkey/rev/aa0a554ed868
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.