Title: [169184] trunk/Source/_javascript_Core
Revision
169184
Author
[email protected]
Date
2014-05-21 18:36:23 -0700 (Wed, 21 May 2014)

Log Message

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: trunk/Source/_javascript_Core/ChangeLog (169183 => 169184)


--- trunk/Source/_javascript_Core/ChangeLog	2014-05-22 01:18:27 UTC (rev 169183)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-05-22 01:36:23 UTC (rev 169184)
@@ -1,3 +1,13 @@
+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-21  Zsolt Borbely  <[email protected]>
 
         [EFL] Add include path of compact_unwind_encoding.h if FTL JIT is enabled

Modified: trunk/Source/_javascript_Core/dfg/DFGPlan.cpp (169183 => 169184)


--- trunk/Source/_javascript_Core/dfg/DFGPlan.cpp	2014-05-22 01:18:27 UTC (rev 169183)
+++ trunk/Source/_javascript_Core/dfg/DFGPlan.cpp	2014-05-22 01:36:23 UTC (rev 169184)
@@ -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