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