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 175305 a77b28e73f60b87adc260557d335ee53c0f73df3
parent 175304 f7e5a0bf9500ca2e6c39883115e83641da29bc76
child 175306 453a325316439a3136e3d10b4e61e451d7e4f9de
push id445
push userffxbld
push dateMon, 10 Mar 2014 22:05:19 +0000
treeherdermozilla-release@dc38b741b04e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem, lsblakk
bugs946243
milestone28.0a2
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;