Bug 1502013 - RemoveUnmarkedBlocks should only mark operands of removed blocks. r=jandem, a=jcristau
authorNicolas B. Pierron <nicolas.b.pierron@nbp.name>
Thu, 25 Oct 2018 14:20:44 +0200
changeset 498424 4d3a4ce7e9c6
parent 498423 e3511cbc8835
child 498425 dc2f3f105676
push id10154
push userryanvm@gmail.com
push dateFri, 09 Nov 2018 16:38:03 +0000
treeherdermozilla-beta@d84c76f0dddd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem, jcristau
bugs1502013
milestone64.0
Bug 1502013 - RemoveUnmarkedBlocks should only mark operands of removed blocks. r=jandem, a=jcristau
js/src/jit/IonAnalysis.cpp
--- a/js/src/jit/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -2554,17 +2554,17 @@ jit::RemoveUnmarkedBlocks(MIRGenerator* 
         // since we may have removed edges even if we didn't remove any blocks.
         graph.unmarkBlocks();
     } else {
         // As we are going to remove edges and basic blocks, we have to mark
         // instructions which would be needed by baseline if we were to
         // bailout.
         for (PostorderIterator it(graph.poBegin()); it != graph.poEnd();) {
             MBasicBlock* block = *it++;
-            if (!block->isMarked()) {
+            if (block->isMarked()) {
                 continue;
             }
 
             FlagAllOperandsAsHavingRemovedUses(mir, block);
         }
 
         // Find unmarked blocks and remove them.
         for (ReversePostorderIterator iter(graph.rpoBegin()); iter != graph.rpoEnd();) {