[JSC] Remove the first LocalCSE
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 6 Aug 2016 00:49:25 +0000 (00:49 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 6 Aug 2016 00:49:25 +0000 (00:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=160615

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-05
Reviewed by Saam Barati.

LocalCSE is the most expensive phase in DFG (excluding FTL).

The combination of two LocalCSEs does not seem to pay for its cost.
Doing a single LocalCSE is always after ConstantFolding and StrengthReduction
is always a win on my machine.

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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/dfg/DFGPlan.cpp

index f7d0fb1..5c00a2d 100644 (file)
@@ -1,3 +1,21 @@
+2016-08-05  Benjamin Poulain  <bpoulain@apple.com>
+
+        [JSC] Remove the first LocalCSE
+        https://bugs.webkit.org/show_bug.cgi?id=160615
+
+        Reviewed by Saam Barati.
+
+        LocalCSE is the most expensive phase in DFG (excluding FTL).
+
+        The combination of two LocalCSEs does not seem to pay for its cost.
+        Doing a single LocalCSE is always after ConstantFolding and StrengthReduction
+        is always a win on my machine.
+
+        * dfg/DFGCleanUpPhase.cpp:
+        (JSC::DFG::CleanUpPhase::run):
+        * dfg/DFGPlan.cpp:
+        (JSC::DFG::Plan::compileInThreadImpl):
+
 2016-08-05  Saam Barati  <sbarati@apple.com>
 
         various math operations don't properly check for an exception after calling toNumber() on the lhs
index b4f863a..109e8a6 100644 (file)
@@ -310,7 +310,6 @@ Plan::CompilationPath Plan::compileInThreadImpl()
         validate(dfg);
         
     performStrengthReduction(dfg);
-    performLocalCSE(dfg);
     performCPSRethreading(dfg);
     performCFA(dfg);
     performConstantFolding(dfg);