Title: [145491] trunk/Source/_javascript_Core
Revision
145491
Author
[email protected]
Date
2013-03-12 00:02:51 -0700 (Tue, 12 Mar 2013)

Log Message

DFG prediction propagation phase should not rerun forward propagation if double voting has already converged
https://bugs.webkit.org/show_bug.cgi?id=111920

Reviewed by Oliver Hunt.

I don't know why we weren't exiting early after double voting if !m_changed.

This change also removes backwards propagation from the voting fixpoint, since at that
point short-circuiting loops is probably not particularly profitable. Profiling shows
that this reduces the time spent in prediction propagation even further.

This change appears to be a 1% SunSpider speed-up.

* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::run):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (145490 => 145491)


--- trunk/Source/_javascript_Core/ChangeLog	2013-03-12 06:52:47 UTC (rev 145490)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-03-12 07:02:51 UTC (rev 145491)
@@ -1,3 +1,21 @@
+2013-03-12  Filip Pizlo  <[email protected]>
+
+        DFG prediction propagation phase should not rerun forward propagation if double voting has already converged
+        https://bugs.webkit.org/show_bug.cgi?id=111920
+
+        Reviewed by Oliver Hunt.
+        
+        I don't know why we weren't exiting early after double voting if !m_changed.
+        
+        This change also removes backwards propagation from the voting fixpoint, since at that
+        point short-circuiting loops is probably not particularly profitable. Profiling shows
+        that this reduces the time spent in prediction propagation even further.
+        
+        This change appears to be a 1% SunSpider speed-up.
+
+        * dfg/DFGPredictionPropagationPhase.cpp:
+        (JSC::DFG::PredictionPropagationPhase::run):
+
 2013-03-11  Filip Pizlo  <[email protected]>
 
         DFG overflow check elimination is too smart for its own good

Modified: trunk/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp (145490 => 145491)


--- trunk/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp	2013-03-12 06:52:47 UTC (rev 145490)
+++ trunk/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp	2013-03-12 07:02:51 UTC (rev 145491)
@@ -73,13 +73,10 @@
         do {
             m_changed = false;
             doRoundOfDoubleVoting();
-            propagateForward();
             if (!m_changed)
                 break;
-            
             m_changed = false;
-            doRoundOfDoubleVoting();
-            propagateBackward();
+            propagateForward();
         } while (m_changed);
         
         return true;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to