Title: [190756] trunk/Source/_javascript_Core
Revision
190756
Author
[email protected]
Date
2015-10-08 16:14:34 -0700 (Thu, 08 Oct 2015)

Log Message

Unreviewed, rolling out r190749.
https://bugs.webkit.org/show_bug.cgi?id=149938

Caused 50+ layout test failures
https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/r190749%20(213)/results.html
(Requested by litherum1 on #webkit).

Reverted changeset:

"DFG SSA should remove unreachable code"
https://bugs.webkit.org/show_bug.cgi?id=149931
http://trac.webkit.org/changeset/190749

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (190755 => 190756)


--- trunk/Source/_javascript_Core/ChangeLog	2015-10-08 22:59:15 UTC (rev 190755)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-10-08 23:14:34 UTC (rev 190756)
@@ -1,3 +1,18 @@
+2015-10-08  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r190749.
+        https://bugs.webkit.org/show_bug.cgi?id=149938
+
+        Caused 50+ layout test failures
+        https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/r190749%20(213)/results.html
+        (Requested by litherum1 on #webkit).
+
+        Reverted changeset:
+
+        "DFG SSA should remove unreachable code"
+        https://bugs.webkit.org/show_bug.cgi?id=149931
+        http://trac.webkit.org/changeset/190749
+
 2015-10-08  Filip Pizlo  <[email protected]>
 
         DFG SSA should remove unreachable code

Modified: trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp (190755 => 190756)


--- trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp	2015-10-08 22:59:15 UTC (rev 190755)
+++ trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp	2015-10-08 23:14:34 UTC (rev 190756)
@@ -30,7 +30,7 @@
 
 #include "DFGAbstractInterpreterInlines.h"
 #include "DFGArgumentsUtilities.h"
-#include "DFGBasicBlockInlines.h"
+#include "DFGBasicBlock.h"
 #include "DFGGraph.h"
 #include "DFGInPlaceAbstractState.h"
 #include "DFGInferredTypeCheck.h"
@@ -55,50 +55,23 @@
     bool run()
     {
         bool changed = false;
-
-        for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
+        
+        for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
+            BasicBlock* block = m_graph.block(blockIndex);
+            if (!block)
+                continue;
             if (block->cfaFoundConstants)
                 changed |= foldConstants(block);
         }
         
         if (changed && m_graph.m_form == SSA) {
             // It's now possible that we have Upsilons pointed at JSConstants. Fix that.
-            for (BasicBlock* block : m_graph.blocksInNaturalOrder())
+            for (BlockIndex blockIndex = m_graph.numBlocks(); blockIndex--;) {
+                BasicBlock* block = m_graph.block(blockIndex);
+                if (!block)
+                    continue;
                 fixUpsilons(block);
-        }
-
-        if (m_graph.m_form == SSA) {
-            // It's now possible to simplify basic blocks by placing an Unreachable terminator right
-            // after anything that invalidates AI.
-            bool didClipBlock = false;
-            for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
-                m_state.beginBasicBlock(block);
-                for (unsigned nodeIndex = 0; nodeIndex < block->size(); ++nodeIndex) {
-                    if (block->at(nodeIndex)->isTerminal()) {
-                        // It's possible that we have something after the terminal. It could be a
-                        // no-op Check node, for example. We don't want the logic below to turn that
-                        // node into Unreachable, since then we'd have two terminators.
-                        break;
-                    }
-                    if (!m_state.isValid()) {
-                        NodeOrigin origin = block->at(nodeIndex)->origin;
-                        for (unsigned killIndex = nodeIndex; killIndex < block->size(); ++killIndex)
-                            m_graph.m_allocator.free(block->at(killIndex));
-                        block->resize(nodeIndex);
-                        block->appendNode(m_graph, SpecNone, Unreachable, origin);
-                        didClipBlock = true;
-                        break;
-                    }
-                    m_interpreter.execute(nodeIndex);
-                }
             }
-
-            if (didClipBlock) {
-                changed = true;
-                m_graph.invalidateCFG();
-                m_graph.resetReachability();
-                m_graph.killUnreachableBlocks();
-            }
         }
          
         return changed;

Modified: trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp (190755 => 190756)


--- trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp	2015-10-08 22:59:15 UTC (rev 190755)
+++ trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp	2015-10-08 23:14:34 UTC (rev 190756)
@@ -727,7 +727,6 @@
     {
         m_graph.computeRefCounts();
         m_graph.initializeNodeOwners();
-        m_graph.m_dominators.computeIfNecessary(m_graph);
         performLivenessAnalysis(m_graph);
         performOSRAvailabilityAnalysis(m_graph);
         m_combinedLiveness = CombinedLiveness(m_graph);

Modified: trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp (190755 => 190756)


--- trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp	2015-10-08 22:59:15 UTC (rev 190755)
+++ trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp	2015-10-08 23:14:34 UTC (rev 190756)
@@ -75,8 +75,6 @@
             dataLog("Graph before PutStack sinking:\n");
             m_graph.dump();
         }
-
-        m_graph.m_dominators.computeIfNecessary(m_graph);
         
         SSACalculator ssaCalculator(m_graph);
         InsertionSet insertionSet(m_graph);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to