Title: [153214] trunk/Source/_javascript_Core
- Revision
- 153214
- Author
- oli...@apple.com
- Date
- 2013-07-24 21:02:15 -0700 (Wed, 24 Jul 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: trunk/Source/_javascript_Core/ChangeLog (153213 => 153214)
--- trunk/Source/_javascript_Core/ChangeLog 2013-07-25 04:02:13 UTC (rev 153213)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-07-25 04:02:15 UTC (rev 153214)
@@ -1,3 +1,19 @@
+2013-06-07 Filip Pizlo <fpi...@apple.com>
+
+ Unreviewed, fix release build.
+
+ * ftl/FTLLink.cpp:
+
+2013-06-06 Filip Pizlo <fpi...@apple.com>
+
+ 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 <fpi...@apple.com>
fourthTier: DFG CFA should know when it hits a contradiction
Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (153213 => 153214)
--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-07-25 04:02:13 UTC (rev 153213)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-07-25 04:02:15 UTC (rev 153214)
@@ -792,6 +792,7 @@
A7B48F490EE8936F00DCBDB6 /* ExecutableAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7B48DB60EE74CFC00DCBDB6 /* ExecutableAllocator.cpp */; };
A7B4ACAF1484C9CE00B38A36 /* JSExportMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B4ACAE1484C9CE00B38A36 /* JSExportMacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7B601821639FD2A00372BA3 /* UnlinkedCodeBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = A79E781F15EECBA80047C855 /* UnlinkedCodeBlock.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ A7BFF3C0179868940002F462 /* DFGFiltrationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A7BFF3BF179868940002F462 /* DFGFiltrationResult.h */; };
A7C0C4AC168103020017011D /* JSScriptRefPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C0C4AB167C08CD0017011D /* JSScriptRefPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7C0C4AD1681067E0017011D /* JSScriptRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7C0C4AA167C08CD0017011D /* JSScriptRef.cpp */; };
A7C1E8E4112E72EF00A37F98 /* JITPropertyAccess32_64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7C1E8C8112E701C00A37F98 /* JITPropertyAccess32_64.cpp */; };
@@ -1821,6 +1822,7 @@
A7B48DB50EE74CFC00DCBDB6 /* ExecutableAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExecutableAllocator.h; sourceTree = "<group>"; };
A7B48DB60EE74CFC00DCBDB6 /* ExecutableAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutableAllocator.cpp; sourceTree = "<group>"; };
A7B4ACAE1484C9CE00B38A36 /* JSExportMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSExportMacros.h; sourceTree = "<group>"; };
+ A7BFF3BF179868940002F462 /* DFGFiltrationResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGFiltrationResult.h; path = dfg/DFGFiltrationResult.h; sourceTree = "<group>"; };
A7C0C4AA167C08CD0017011D /* JSScriptRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSScriptRef.cpp; sourceTree = "<group>"; };
A7C0C4AB167C08CD0017011D /* JSScriptRefPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSScriptRefPrivate.h; sourceTree = "<group>"; };
A7C1E8C8112E701C00A37F98 /* JITPropertyAccess32_64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITPropertyAccess32_64.cpp; sourceTree = "<group>"; };
@@ -2949,6 +2951,7 @@
86EC9DB31328DF44002B2AD7 /* dfg */ = {
isa = PBXGroup;
children = (
+ A7BFF3BF179868940002F462 /* DFGFiltrationResult.h */,
0F62016D143FCD2F0068B77C /* DFGAbstractState.cpp */,
0F62016E143FCD2F0068B77C /* DFGAbstractState.h */,
0F55C19317276E4600CEABFD /* DFGAbstractValue.cpp */,
@@ -3701,6 +3704,7 @@
65303D641447B9E100D3F904 /* ParserTokens.h in Headers */,
1497209114EB831500FEB1B7 /* PassWeak.h in Headers */,
0F34B14C16D43E0D001CDA5A /* PolymorphicAccessStructureList.h in Headers */,
+ A7BFF3C0179868940002F462 /* DFGFiltrationResult.h in Headers */,
0F9FC8C414E1B60000D52AE0 /* PolymorphicPutByIdList.h in Headers */,
0F98206116BFE38300240D02 /* PreciseJumpTargets.h in Headers */,
868916B0155F286300CB2B9A /* PrivateName.h in Headers */,
Modified: trunk/Source/_javascript_Core/dfg/DFGPlan.cpp (153213 => 153214)
--- trunk/Source/_javascript_Core/dfg/DFGPlan.cpp 2013-07-25 04:02:13 UTC (rev 153213)
+++ trunk/Source/_javascript_Core/dfg/DFGPlan.cpp 2013-07-25 04:02:15 UTC (rev 153214)
@@ -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);
Modified: trunk/Source/_javascript_Core/ftl/FTLLink.cpp (153213 => 153214)
--- trunk/Source/_javascript_Core/ftl/FTLLink.cpp 2013-07-25 04:02:13 UTC (rev 153213)
+++ trunk/Source/_javascript_Core/ftl/FTLLink.cpp 2013-07-25 04:02:15 UTC (rev 153214)
@@ -28,6 +28,7 @@
#if ENABLE(FTL_JIT)
+#include "CallFrameInlines.h"
#include "CodeBlockWithJITType.h"
#include "DFGCCallHelpers.h"
#include "DFGCommon.h"
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes