Bug 1244828 - Ensure enough ballast space in TypeAnalyzer::adjustInputs. r=h4writer
authorNicolas B. Pierron <nicolas.b.pierron@mozilla.com>
Thu, 11 Feb 2016 17:50:52 +0000
changeset 320334 fdbd942a9cac3bd39681d6de46ba5b8f9f8a2ba5
parent 320333 433ccd116471aba8faada9e8aa8691d1bb1199fe
child 320335 db1d8b455d542bfea1cbc3242aba1564d693975f
push id5913
push userjlund@mozilla.com
push dateMon, 25 Apr 2016 16:57:49 +0000
treeherdermozilla-beta@dcaf0a6fa115 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersh4writer
bugs1244828
milestone47.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 1244828 - Ensure enough ballast space in TypeAnalyzer::adjustInputs. r=h4writer
js/src/jit/IonAnalysis.cpp
--- a/js/src/jit/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -1554,16 +1554,19 @@ TypeAnalyzer::insertConversions()
             } else {
                 adjustPhiInputs(phi);
             }
         }
 
         // AdjustInputs can add/remove/mutate instructions before and after the
         // current instruction. Only increment the iterator after it is finished.
         for (MInstructionIterator iter(block->begin()); iter != block->end(); iter++) {
+            if (!alloc().ensureBallast())
+                return false;
+
             if (!adjustInputs(*iter))
                 return false;
         }
     }
     return true;
 }
 
 // This function tries to emit Float32 specialized operations whenever it's possible.