Closed Bug 672735 Opened 11 years ago Closed 11 years ago

IonMonkey: Add sequential IDs to unbox/redefine instructions

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)

Currently the linear scan allocator chokes when IDs are egregiously not in sequential order, which happens when unboxes are moved to their uses, potentially in other blocks. These instructions can be assigned a sequential ID (much like those instructions without any defs at all) to allow their inputs and outputs to be effectively referenced.
Attached patch Patch v0Splinter Review
Changes the ID assignment algorithm to ignore REDEFINED defs.
Attachment #548575 - Flags: review?(dvander)
Comment on attachment 548575 [details] [diff] [review]
Patch v0

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

::: js/src/ion/IonLowering-inl.h
@@ +174,5 @@
> +    for (size_t i = 0; i < ins->numDefs(); i++) {
> +        if (ins->getDef(i)->policy() != LDefinition::REDEFINED) {
> +            foundRealDef = true;
> +            ins->setId(ins->getDef(i)->virtualRegister());
> +            break;

Just return true here and don't bother with the boolean flag.
Attachment #548575 - Flags: review?(dvander) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/0d89fc51d670
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.