Bug 1286462 - Ensure we have enough ballast space in TypeAnalyzer::specializeValidFloatOps. r=bbouvier
authorNicolas B. Pierron <nicolas.b.pierron@mozilla.com>
Wed, 13 Jul 2016 13:13:51 +0000
changeset 304803 3cf91a31e92c7b749999d74b1470b35ac1e97823
parent 304802 b00ee999a59199c84960398dce43cc68c44be6cc
child 304804 dcb7835534e21a62cebdd5d1205d4e81f6bc6946
push id79435
push usernpierron@mozilla.com
push dateWed, 13 Jul 2016 13:14:30 +0000
treeherdermozilla-inbound@3cf91a31e92c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbbouvier
bugs1286462
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1286462 - Ensure we have enough ballast space in TypeAnalyzer::specializeValidFloatOps. r=bbouvier
js/src/jit/IonAnalysis.cpp
--- a/js/src/jit/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -1811,16 +1811,19 @@ TypeAnalyzer::specializeValidFloatOps()
 
         for (MInstructionIterator ins(block->begin()); ins != block->end(); ++ins) {
             if (!ins->isFloat32Commutative())
                 continue;
 
             if (ins->type() == MIRType::Float32)
                 continue;
 
+            if (!alloc().ensureBallast())
+                return false;
+
             // This call will try to specialize the instruction iff all uses are consumers and
             // all inputs are producers.
             ins->trySpecializeFloat32(alloc());
         }
     }
     return true;
 }