Title: [163929] trunk/Source/_javascript_Core
Revision
163929
Author
[email protected]
Date
2014-02-11 19:16:27 -0800 (Tue, 11 Feb 2014)

Log Message

Use LLVM's dead store elimination
https://bugs.webkit.org/show_bug.cgi?id=128638

Reviewed by Mark Hahnenberg.
        
DFG's store elimination was being run too soon for comfort on the FTL path. It's
really only sound when run after all other optimizations. Remove it from the FTL
path.
        
Enable LLVM store elimination. It's both easier to reason about and more
comprehensive.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* ftl/FTLCompile.cpp:
(JSC::FTL::compile):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (163928 => 163929)


--- trunk/Source/_javascript_Core/ChangeLog	2014-02-12 02:55:22 UTC (rev 163928)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-02-12 03:16:27 UTC (rev 163929)
@@ -1,3 +1,22 @@
+2014-02-11  Filip Pizlo  <[email protected]>
+
+        Use LLVM's dead store elimination
+        https://bugs.webkit.org/show_bug.cgi?id=128638
+
+        Reviewed by Mark Hahnenberg.
+        
+        DFG's store elimination was being run too soon for comfort on the FTL path. It's
+        really only sound when run after all other optimizations. Remove it from the FTL
+        path.
+        
+        Enable LLVM store elimination. It's both easier to reason about and more
+        comprehensive.
+
+        * dfg/DFGPlan.cpp:
+        (JSC::DFG::Plan::compileInThreadImpl):
+        * ftl/FTLCompile.cpp:
+        (JSC::FTL::compile):
+
 2014-02-11  Brian Burg  <[email protected]>
 
         Web Replay: upstream replay input code generator and EncodedValue class

Modified: trunk/Source/_javascript_Core/dfg/DFGPlan.cpp (163928 => 163929)


--- trunk/Source/_javascript_Core/dfg/DFGPlan.cpp	2014-02-12 02:55:22 UTC (rev 163928)
+++ trunk/Source/_javascript_Core/dfg/DFGPlan.cpp	2014-02-12 03:16:27 UTC (rev 163929)
@@ -255,7 +255,6 @@
     dfg.m_fixpointState = FixpointConverged;
 
     performStoreBarrierElision(dfg);
-    performStoreElimination(dfg);
     
     // If we're doing validation, then run some analyses, to give them an opportunity
     // to self-validate. Now is as good a time as any to do this.
@@ -268,6 +267,7 @@
     case DFGMode: {
         performTierUpCheckInjection(dfg);
 
+        performStoreElimination(dfg);
         performCPSRethreading(dfg);
         performDCE(dfg);
         performStackLayout(dfg);

Modified: trunk/Source/_javascript_Core/ftl/FTLCompile.cpp (163928 => 163929)


--- trunk/Source/_javascript_Core/ftl/FTLCompile.cpp	2014-02-12 02:55:22 UTC (rev 163928)
+++ trunk/Source/_javascript_Core/ftl/FTLCompile.cpp	2014-02-12 03:16:27 UTC (rev 163929)
@@ -486,6 +486,7 @@
             llvm->AddTypeBasedAliasAnalysisPass(modulePasses);
             llvm->AddGVNPass(modulePasses);
             llvm->AddCFGSimplificationPass(modulePasses);
+            llvm->AddDeadStoreEliminationPass(modulePasses);
             llvm->RunPassManager(modulePasses, state.module);
         } else {
             LLVMPassManagerBuilderRef passBuilder = llvm->PassManagerBuilderCreate();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to