Title: [125964] trunk/Source/_javascript_Core
Revision
125964
Author
[email protected]
Date
2012-08-17 23:01:33 -0700 (Fri, 17 Aug 2012)

Log Message

DFG CSE should be more honest about when it changed the IR
https://bugs.webkit.org/show_bug.cgi?id=94408

Reviewed by Geoffrey Garen.

The CSE phase now always returns true if it changed the IR.

* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::setReplacement):
(JSC::DFG::CSEPhase::eliminate):
(JSC::DFG::CSEPhase::performNodeCSE):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (125963 => 125964)


--- trunk/Source/_javascript_Core/ChangeLog	2012-08-18 03:46:20 UTC (rev 125963)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-08-18 06:01:33 UTC (rev 125964)
@@ -1,5 +1,19 @@
 2012-08-17  Filip Pizlo  <[email protected]>
 
+        DFG CSE should be more honest about when it changed the IR
+        https://bugs.webkit.org/show_bug.cgi?id=94408
+
+        Reviewed by Geoffrey Garen.
+
+        The CSE phase now always returns true if it changed the IR.
+
+        * dfg/DFGCSEPhase.cpp:
+        (JSC::DFG::CSEPhase::setReplacement):
+        (JSC::DFG::CSEPhase::eliminate):
+        (JSC::DFG::CSEPhase::performNodeCSE):
+
+2012-08-17  Filip Pizlo  <[email protected]>
+
         DFG is still too pessimistic about what constitutes a side-effect on array accesses
         https://bugs.webkit.org/show_bug.cgi?id=94309
 

Modified: trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp (125963 => 125964)


--- trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp	2012-08-18 03:46:20 UTC (rev 125963)
+++ trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp	2012-08-18 06:01:33 UTC (rev 125964)
@@ -843,6 +843,8 @@
         // At this point we will eliminate all references to this node.
         m_replacements[m_compileIndex] = replacement;
         
+        m_changed = true;
+        
         return true;
     }
     
@@ -856,6 +858,8 @@
         ASSERT(node.refCount() == 1);
         ASSERT(node.mustGenerate());
         node.setOpAndDefaultFlags(Phantom);
+        
+        m_changed = true;
     }
     
     void eliminate(NodeIndex nodeIndex, NodeType phantomType = Phantom)
@@ -867,6 +871,8 @@
             return;
         ASSERT(node.mustGenerate());
         node.setOpAndDefaultFlags(phantomType);
+        
+        m_changed = true;
     }
     
     void performNodeCSE(Node& node)
@@ -982,7 +988,7 @@
             
         case GetLocalUnlinked: {
             NodeIndex relevantLocalOpIgnored;
-            m_changed |= setReplacement(getLocalLoadElimination(node.unlinkedLocal(), relevantLocalOpIgnored, true));
+            setReplacement(getLocalLoadElimination(node.unlinkedLocal(), relevantLocalOpIgnored, true));
             break;
         }
             
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to