Closed Bug 716149 Opened 12 years ago Closed 12 years ago

IonMonkey: Assertion failure: *from != *to in GRA

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dvander, Assigned: dvander)

References

Details

Attachments

(1 file)

Fails about 30 tests with --ion-regalloc=greedy
Attached patch fixSplinter Review
There are two problems:
 (1) We didn't look at phi inputs when keeping things outside loops alive.
 (2) Phis could get the same stack slot as their inputs. This is actually okay,
     but I feel better disallowing it than hacking around the assert.
Attachment #586627 - Flags: review?(sstangl)
Comment on attachment 586627 [details] [diff] [review]
fix

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

::: js/src/ion/GreedyAllocator.cpp
@@ +804,5 @@
>  
> +        for (LInstructionIterator i = block->begin(); i != block->end(); i++)
> +            findLoopCarriedUses(*i, lowerBound, upperBound);
> +        for (size_t i = 0; i < block->numPhis(); i++)
> +            findLoopCarriedUses(block->getPhi(i), lowerBound, upperBound);

This is elegant.
Attachment #586627 - Flags: review?(sstangl) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/0a8aee9639cf
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.