Title: [169185] branches/ftlopt/Source/_javascript_Core
Revision
169185
Author
[email protected]
Date
2014-05-21 18:55:25 -0700 (Wed, 21 May 2014)

Log Message

Merge trunk r169184 to ftlopt.

    2014-05-21  Filip Pizlo  <[email protected]>
    
    Store barrier elision should run after DCE in both the DFG path and the FTL path
    https://bugs.webkit.org/show_bug.cgi?id=129718
    
    Rubber stamped by Mark Hahnenberg.
    
    * dfg/DFGPlan.cpp:
    (JSC::DFG::Plan::compileInThreadImpl):

Modified Paths

Diff

Modified: branches/ftlopt/Source/_javascript_Core/ChangeLog (169184 => 169185)


--- branches/ftlopt/Source/_javascript_Core/ChangeLog	2014-05-22 01:36:23 UTC (rev 169184)
+++ branches/ftlopt/Source/_javascript_Core/ChangeLog	2014-05-22 01:55:25 UTC (rev 169185)
@@ -1,3 +1,17 @@
+2014-05-21  Filip Pizlo  <[email protected]>
+
+        Merge trunk r169184 to ftlopt.
+
+    2014-05-21  Filip Pizlo  <[email protected]>
+    
+            Store barrier elision should run after DCE in both the DFG path and the FTL path
+            https://bugs.webkit.org/show_bug.cgi?id=129718
+    
+            Rubber stamped by Mark Hahnenberg.
+    
+            * dfg/DFGPlan.cpp:
+            (JSC::DFG::Plan::compileInThreadImpl):
+    
 2014-05-16  Filip Pizlo  <[email protected]>
 
         [ftlopt] A StructureSet with one element should only require one word and no allocation

Modified: branches/ftlopt/Source/_javascript_Core/dfg/DFGPlan.cpp (169184 => 169185)


--- branches/ftlopt/Source/_javascript_Core/dfg/DFGPlan.cpp	2014-05-22 01:36:23 UTC (rev 169184)
+++ branches/ftlopt/Source/_javascript_Core/dfg/DFGPlan.cpp	2014-05-22 01:55:25 UTC (rev 169185)
@@ -264,8 +264,6 @@
 
     dfg.m_fixpointState = FixpointConverged;
 
-    performStoreBarrierElision(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.
     if (validationEnabled()) {
@@ -277,6 +275,7 @@
     case DFGMode: {
         performTierUpCheckInjection(dfg);
 
+        performStoreBarrierElision(dfg);
         performStoreElimination(dfg);
         performCPSRethreading(dfg);
         performDCE(dfg);
@@ -316,6 +315,11 @@
         performLICM(dfg);
         performIntegerCheckCombining(dfg);
         performCSE(dfg);
+        
+        // At this point we're not allowed to do any further code motion because our reasoning
+        // about code motion assumes that it's OK to insert GC points in random places.
+        
+        performStoreBarrierElision(dfg);
         performLivenessAnalysis(dfg);
         performCFA(dfg);
         if (Options::validateFTLOSRExitLiveness())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to