Closed
Bug 714727
Opened 13 years ago
Closed 13 years ago
IonMonkey: Assertion failure: (live->empty()), at LinearScan.cpp:632
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: jandem, Assigned: dvander)
References
Details
Attachments
(1 file)
(deleted),
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
ion/inlining/inline-callarg-bailout-phi.js triggers this assert with --ion -n
Reporter | ||
Comment 1•13 years ago
|
||
This is a GVN bug. The greedy allocator does not assert but gives incorrect results for the following testcase:
--
function add(x, y) {
var z;
if (x & 0x1)
z = x + y;
else
z = x + y;
return z;
}
for(var i=0; i<100; i++) {
print(add(i, i));
}
--
GVN removes the second x + y, which seems bogus.
Reporter | ||
Comment 2•13 years ago
|
||
MPhi::foldsTo looks at the value numbers of its operands, and if they are equal, the MPhi is folded to the first operand. The problem is, unlike ValueNumberer::findDominatingDef, this does not consider the dominator tree. So, for the testcase in comment 1, the phi is replaced with the first "x + y"...
Reporter | ||
Updated•13 years ago
|
Assignee: jdemooij → general
Status: ASSIGNED → NEW
Assignee | ||
Comment 3•13 years ago
|
||
Let's do the easy fix for now and just only eliminate phis based on ssa name, rather than value numbers.
Reporter | ||
Updated•13 years ago
|
Attachment #589329 -
Flags: review?(jdemooij) → review+
Assignee | ||
Comment 4•13 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•