Title: [232828] tags/Safari-606.1.21/Source

Diff

Modified: tags/Safari-606.1.21/Source/_javascript_Core/ChangeLog (232827 => 232828)


--- tags/Safari-606.1.21/Source/_javascript_Core/ChangeLog	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/_javascript_Core/ChangeLog	2018-06-14 04:56:42 UTC (rev 232828)
@@ -1,3 +1,7 @@
+2018-06-13  Kocsen Chung  <kocsen_ch...@apple.com>
+
+        Revert r232741. rdar://problem/41108295
+
 2018-06-12  Saam Barati  <sbar...@apple.com>
 
         Remove JSVirtualMachine shrinkFootprint when clients move to shrinkFootprintWhenIdle

Modified: tags/Safari-606.1.21/Source/_javascript_Core/b3/B3Validate.cpp (232827 => 232828)


--- tags/Safari-606.1.21/Source/_javascript_Core/b3/B3Validate.cpp	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/_javascript_Core/b3/B3Validate.cpp	2018-06-14 04:56:42 UTC (rev 232828)
@@ -536,14 +536,6 @@
 
         for (Variable* variable : m_procedure.variables())
             VALIDATE(variable->type() != Void, ("At ", *variable));
-
-        for (BasicBlock* block : m_procedure) {
-            // We expect the predecessor list to be de-duplicated.
-            HashSet<BasicBlock*> predecessors;
-            for (BasicBlock* predecessor : block->predecessors())
-                predecessors.add(predecessor);
-            VALIDATE(block->numPredecessors() == predecessors.size(), ("At ", *block));
-        }
     }
 
 private:

Modified: tags/Safari-606.1.21/Source/_javascript_Core/b3/air/AirValidate.cpp (232827 => 232828)


--- tags/Safari-606.1.21/Source/_javascript_Core/b3/air/AirValidate.cpp	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/_javascript_Core/b3/air/AirValidate.cpp	2018-06-14 04:56:42 UTC (rev 232828)
@@ -112,14 +112,6 @@
             for (BasicBlock* successor : block->successorBlocks())
                 VALIDATE(validBlocks.contains(successor), ("In ", *block));
         }
-
-        for (BasicBlock* block : m_code) {
-            // We expect the predecessor list to be de-duplicated.
-            HashSet<BasicBlock*> predecessors;
-            for (BasicBlock* predecessor : block->predecessors())
-                predecessors.add(predecessor);
-            VALIDATE(block->numPredecessors() == predecessors.size(), ("At ", *block));
-        }
     }
 
 private:

Modified: tags/Safari-606.1.21/Source/_javascript_Core/b3/testb3.cpp (232827 => 232828)


--- tags/Safari-606.1.21/Source/_javascript_Core/b3/testb3.cpp	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/_javascript_Core/b3/testb3.cpp	2018-06-14 04:56:42 UTC (rev 232828)
@@ -10830,49 +10830,6 @@
     CHECK(compileAndRun<int32_t>(proc, numerator, denominator) == chillMod(numerator, denominator));
 }
 
-void testLoopWithMultipleHeaderEdges()
-{
-    Procedure proc;
-    BasicBlock* root = proc.addBlock();
-    BasicBlock* innerHeader = proc.addBlock();
-    BasicBlock* innerEnd = proc.addBlock();
-    BasicBlock* outerHeader = proc.addBlock();
-    BasicBlock* outerEnd = proc.addBlock();
-    BasicBlock* end = proc.addBlock();
-
-    auto* ne42 = outerHeader->appendNew<Value>(
-        proc, NotEqual, Origin(),
-        root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0),
-        root->appendNew<ConstPtrValue>(proc, Origin(), 42));
-    outerHeader->appendNewControlValue(
-        proc, Branch, Origin(),
-        ne42,
-        FrequentedBlock(innerHeader), FrequentedBlock(outerEnd));
-    outerEnd->appendNewControlValue(
-        proc, Branch, Origin(),
-        root->appendNew<Value>(
-            proc, Trunc, Origin(),
-            root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0)),
-        FrequentedBlock(outerHeader), FrequentedBlock(end));
-
-    SwitchValue* switchValue = innerHeader->appendNew<SwitchValue>(
-        proc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1));
-    switchValue->setFallThrough(FrequentedBlock(innerEnd));
-    for (unsigned i = 0; i < 20; ++i) {
-        switchValue->appendCase(SwitchCase(i, FrequentedBlock(innerHeader)));
-    }
-
-    root->appendNewControlValue(proc, Jump, Origin(), FrequentedBlock(outerHeader));
-
-    innerEnd->appendNewControlValue(proc, Jump, Origin(), FrequentedBlock(outerEnd));
-    end->appendNewControlValue(
-        proc, Return, Origin(),
-        end->appendNew<Const32Value>(proc, Origin(), 5678));
-
-    auto code = compileProc(proc); // This shouldn't crash in computing NaturalLoops.
-    CHECK(invoke<int32_t>(*code, 0, 12345) == 5678);
-}
-
 void testSwitch(unsigned degree, unsigned gap = 1)
 {
     Procedure proc;
@@ -17846,8 +17803,6 @@
     RUN(testShuffleDoesntTrashCalleeSaves());
     RUN(testDemotePatchpointTerminal());
 
-    RUN(testLoopWithMultipleHeaderEdges());
-
     if (isX86()) {
         RUN(testBranchBitAndImmFusion(Identity, Int64, 1, Air::BranchTest32, Air::Arg::Tmp));
         RUN(testBranchBitAndImmFusion(Identity, Int64, 0xff, Air::BranchTest32, Air::Arg::Tmp));

Modified: tags/Safari-606.1.21/Source/_javascript_Core/dfg/DFGGraph.cpp (232827 => 232828)


--- tags/Safari-606.1.21/Source/_javascript_Core/dfg/DFGGraph.cpp	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/_javascript_Core/dfg/DFGGraph.cpp	2018-06-14 04:56:42 UTC (rev 232828)
@@ -656,8 +656,7 @@
         worklist.append(successor);
     }
     
-    if (!successor->predecessors.contains(block))
-        successor->predecessors.append(block);
+    successor->predecessors.append(block);
 }
 
 void Graph::determineReachability()

Modified: tags/Safari-606.1.21/Source/_javascript_Core/dfg/DFGValidate.cpp (232827 => 232828)


--- tags/Safari-606.1.21/Source/_javascript_Core/dfg/DFGValidate.cpp	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/_javascript_Core/dfg/DFGValidate.cpp	2018-06-14 04:56:42 UTC (rev 232828)
@@ -415,14 +415,6 @@
                 });
             }
         }
-
-        for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
-            // We expect the predecessor list to be de-duplicated.
-            HashSet<BasicBlock*> predecessors;
-            for (BasicBlock* predecessor : block->predecessors)
-                predecessors.add(predecessor);
-            VALIDATE((block), predecessors.size() == block->predecessors.size());
-        }
     }
     
 private:

Modified: tags/Safari-606.1.21/Source/WTF/ChangeLog (232827 => 232828)


--- tags/Safari-606.1.21/Source/WTF/ChangeLog	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/WTF/ChangeLog	2018-06-14 04:56:42 UTC (rev 232828)
@@ -1,3 +1,7 @@
+2018-06-13  Kocsen Chung  <kocsen_ch...@apple.com>
+
+        Revert r232741. rdar://problem/41108295
+
 2018-06-11  Saam Barati  <sbar...@apple.com>
 
         The NaturalLoops algorithm only works when the list of blocks in a loop is de-duplicated

Modified: tags/Safari-606.1.21/Source/WTF/wtf/NaturalLoops.h (232827 => 232828)


--- tags/Safari-606.1.21/Source/WTF/wtf/NaturalLoops.h	2018-06-14 04:14:50 UTC (rev 232827)
+++ tags/Safari-606.1.21/Source/WTF/wtf/NaturalLoops.h	2018-06-14 04:56:42 UTC (rev 232828)
@@ -94,11 +94,7 @@
     template<typename>
     friend class NaturalLoops;
     
-    void addBlock(typename Graph::Node block)
-    {
-        ASSERT(!m_body.contains(block)); // The NaturalLoops algorithm relies on blocks being unique in this vector.
-        m_body.append(block);
-    }
+    void addBlock(typename Graph::Node block) { m_body.append(block); }
 
     Graph* m_graph;
     typename Graph::Node m_header;
@@ -134,20 +130,18 @@
         m_loops.shrink(0);
     
         for (unsigned blockIndex = graph.numNodes(); blockIndex--;) {
-            typename Graph::Node header = graph.node(blockIndex);
-            if (!header)
+            typename Graph::Node block = graph.node(blockIndex);
+            if (!block)
                 continue;
         
-            for (unsigned i = graph.predecessors(header).size(); i--;) {
-                typename Graph::Node footer = graph.predecessors(header)[i];
-                if (!dominators.dominates(header, footer))
+            for (unsigned i = graph.successors(block).size(); i--;) {
+                typename Graph::Node successor = graph.successors(block)[i];
+                if (!dominators.dominates(successor, block))
                     continue;
-                // At this point, we've proven 'header' is actually a loop header and
-                // that 'footer' is a loop footer.
                 bool found = false;
                 for (unsigned j = m_loops.size(); j--;) {
-                    if (m_loops[j].header() == header) {
-                        m_loops[j].addBlock(footer);
+                    if (m_loops[j].header() == successor) {
+                        m_loops[j].addBlock(block);
                         found = true;
                         break;
                     }
@@ -154,8 +148,8 @@
                 }
                 if (found)
                     continue;
-                NaturalLoop<Graph> loop(graph, header, m_loops.size());
-                loop.addBlock(footer);
+                NaturalLoop<Graph> loop(graph, successor, m_loops.size());
+                loop.addBlock(block);
                 m_loops.append(loop);
             }
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to