Bug 946243 - IonMonkey: Don't remove MComputeThis during EliminateDeadResumePointOperands. r=jandem, a=lsblakk
authorHannes Verschore <hv1989@gmail.com>
Mon, 09 Dec 2013 13:43:55 +0100
changeset 167742 3d2dbc8282b2dff9e1021a7c61400dfb91e51eaa
parent 167741 1a7dbb4d887ee405093f3a44f09c4b9f978b9e87
child 167743 0cb1744033d02677ea0fbf541a9d89a0e7a5daa2
push id428
push userbbajaj@mozilla.com
push dateTue, 28 Jan 2014 00:16:25 +0000
treeherdermozilla-release@cd72a7ff3a75 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem, lsblakk
bugs946243
milestone27.0
Bug 946243 - IonMonkey: Don't remove MComputeThis during EliminateDeadResumePointOperands. r=jandem, a=lsblakk
js/src/jit/IonAnalysis.cpp
--- a/js/src/jit/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -83,17 +83,17 @@ jit::EliminateDeadResumePointOperands(MI
             if (ins->isConstant())
                 continue;
 
             // Scanning uses does not give us sufficient information to tell
             // where instructions that are involved in box/unbox operations or
             // parameter passing might be live. Rewriting uses of these terms
             // in resume points may affect the interpreter's behavior. Rather
             // than doing a more sophisticated analysis, just ignore these.
-            if (ins->isUnbox() || ins->isParameter() || ins->isTypeBarrier())
+            if (ins->isUnbox() || ins->isParameter() || ins->isTypeBarrier() || ins->isComputeThis())
                 continue;
 
             // If the instruction's behavior has been constant folded into a
             // separate instruction, we can't determine precisely where the
             // instruction becomes dead and can't eliminate its uses.
             if (ins->isFolded())
                 continue;