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

Reply via email to