Title: [151326] branches/dfgFourthTier/Source/_javascript_Core
Revision
151326
Author
[email protected]
Date
2013-06-07 10:22:37 -0700 (Fri, 07 Jun 2013)

Log Message

fourthTier: Reenable the DFG optimization fixpoint now that it's profitable to do so with concurrent compilation
https://bugs.webkit.org/show_bug.cgi?id=117331

Rubber stamped by Sam Weinig.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):

Modified Paths

Diff

Modified: branches/dfgFourthTier/Source/_javascript_Core/ChangeLog (151325 => 151326)


--- branches/dfgFourthTier/Source/_javascript_Core/ChangeLog	2013-06-07 17:15:29 UTC (rev 151325)
+++ branches/dfgFourthTier/Source/_javascript_Core/ChangeLog	2013-06-07 17:22:37 UTC (rev 151326)
@@ -1,3 +1,13 @@
+2013-06-06  Filip Pizlo  <[email protected]>
+
+        fourthTier: Reenable the DFG optimization fixpoint now that it's profitable to do so with concurrent compilation
+        https://bugs.webkit.org/show_bug.cgi?id=117331
+
+        Rubber stamped by Sam Weinig.
+
+        * dfg/DFGPlan.cpp:
+        (JSC::DFG::Plan::compileInThreadImpl):
+
 2013-06-05  Filip Pizlo  <[email protected]>
 
         fourthTier: DFG CFA should know when it hits a contradiction

Modified: branches/dfgFourthTier/Source/_javascript_Core/dfg/DFGPlan.cpp (151325 => 151326)


--- branches/dfgFourthTier/Source/_javascript_Core/dfg/DFGPlan.cpp	2013-06-07 17:15:29 UTC (rev 151325)
+++ branches/dfgFourthTier/Source/_javascript_Core/dfg/DFGPlan.cpp	2013-06-07 17:22:37 UTC (rev 151326)
@@ -150,15 +150,31 @@
     performFixup(dfg);
     performTypeCheckHoisting(dfg);
     
+    unsigned count = 1;
     dfg.m_fixpointState = FixpointNotConverged;
+    for (;; ++count) {
+        if (logCompilationChanges())
+            dataLogF("DFG beginning optimization fixpoint iteration #%u.\n", count);
+        bool changed = false;
+        
+        if (validationEnabled())
+            validate(dfg);
+        
+        performCFA(dfg);
+        changed |= performConstantFolding(dfg);
+        changed |= performArgumentsSimplification(dfg);
+        changed |= performCFGSimplification(dfg);
+        changed |= performCSE(dfg);
+        
+        if (!changed)
+            break;
+        
+        performCPSRethreading(dfg);
+    }
+    
+    if (logCompilationChanges())
+        dataLogF("DFG optimization fixpoint converged in %u iterations.\n", count);
 
-    performCSE(dfg);
-    performArgumentsSimplification(dfg);
-    performCPSRethreading(dfg); // This should usually be a no-op since CSE rarely dethreads, and arguments simplification rarely does anything.
-    performCFA(dfg);
-    performConstantFolding(dfg);
-    performCFGSimplification(dfg);
-
     dfg.m_fixpointState = FixpointConverged;
 
     performStoreElimination(dfg);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to