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

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: dvander, Assigned: dvander)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
Fails about 30 tests with --ion-regalloc=greedy
(Assignee)

Comment 1

5 years ago
Created attachment 586627 [details] [diff] [review]
fix

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+
(Assignee)

Comment 3

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