Bug 1245152 - Ensure enough ballast space in RangeAnalysis::analyzeLoop. r=h4writer
authorNicolas B. Pierron <nicolas.b.pierron@mozilla.com>
Thu, 11 Feb 2016 17:50:53 +0000
changeset 284008 385f208a57bf983d15f09400ae3d1d8fe0a5f803
parent 284007 e697c6ec64add8ded52a132e85789bd10e93b4d6
child 284009 5c5ec75e94e60656d3cea10affc4c48a7971b212
push id29995
push usercbook@mozilla.com
push dateFri, 12 Feb 2016 14:16:12 +0000
treeherdermozilla-central@218d16a9ddcc [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersh4writer
bugs1245152
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 1245152 - Ensure enough ballast space in RangeAnalysis::analyzeLoop. r=h4writer
js/src/jit/RangeAnalysis.cpp
--- a/js/src/jit/RangeAnalysis.cpp
+++ b/js/src/jit/RangeAnalysis.cpp
@@ -1858,16 +1858,18 @@ RangeAnalysis::analyzeLoop(MBasicBlock* 
             break;
 
         block = block->immediateDominator();
 
         if (branch) {
             direction = NegateBranchDirection(direction);
             MBasicBlock* otherBlock = branch->branchSuccessor(direction);
             if (!otherBlock->isMarked()) {
+                if (!alloc().ensureBallast())
+                    return false;
                 iterationBound =
                     analyzeLoopIterationCount(header, branch, direction);
                 if (iterationBound)
                     break;
             }
         }
     } while (block != header);