Title: [159074] trunk/Source/_javascript_Core
Revision
159074
Author
fpi...@apple.com
Date
2013-11-11 15:01:53 -0800 (Mon, 11 Nov 2013)

Log Message

Remove ConstantFoldingPhase's weirdo compile-time optimization
https://bugs.webkit.org/show_bug.cgi?id=124169

Reviewed by Mark Hahnenberg.
        
It turns out that this compile-time optimization doesn't optimize compile times
anymore. Kill it with fire.

* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (159073 => 159074)


--- trunk/Source/_javascript_Core/ChangeLog	2013-11-11 22:47:29 UTC (rev 159073)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-11-11 23:01:53 UTC (rev 159074)
@@ -1,5 +1,18 @@
 2013-11-11  Filip Pizlo  <fpi...@apple.com>
 
+        Remove ConstantFoldingPhase's weirdo compile-time optimization
+        https://bugs.webkit.org/show_bug.cgi?id=124169
+
+        Reviewed by Mark Hahnenberg.
+        
+        It turns out that this compile-time optimization doesn't optimize compile times
+        anymore. Kill it with fire.
+
+        * dfg/DFGConstantFoldingPhase.cpp:
+        (JSC::DFG::ConstantFoldingPhase::foldConstants):
+
+2013-11-11  Filip Pizlo  <fpi...@apple.com>
+
         Make bytecode dumping use the right opcode names for inc/dec.
 
         Rubber stamped by Mark Hahnenberg.

Modified: trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp (159073 => 159074)


--- trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp	2013-11-11 22:47:29 UTC (rev 159073)
+++ trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp	2013-11-11 23:01:53 UTC (rev 159074)
@@ -349,37 +349,9 @@
             CodeOrigin codeOrigin = node->codeOrigin;
             AdjacencyList children = node->children;
             
-            if (node->op() == GetLocal) {
-                // GetLocals without a Phi child are guaranteed dead. We don't have to
-                // do anything about them.
-                if (!node->child1())
-                    continue;
-                
-                if (m_graph.m_form != LoadStore) {
-                    VariableAccessData* variable = node->variableAccessData();
-                    Node* phi = node->child1().node();
-                    if (phi->op() == Phi
-                        && block->variablesAtHead.operand(variable->local()) == phi
-                        && block->variablesAtTail.operand(variable->local()) == node) {
-                        
-                        // Keep the graph threaded for easy cases. This is improves compile
-                        // times. It would be correct to just dethread here.
-                        
-                        m_graph.convertToConstant(node, value);
-                        Node* phantom = m_insertionSet.insertNode(
-                            indexInBlock, SpecNone, PhantomLocal,  codeOrigin,
-                            OpInfo(variable), Edge(phi));
-                        block->variablesAtHead.operand(variable->local()) = phantom;
-                        block->variablesAtTail.operand(variable->local()) = phantom;
-                        
-                        changed = true;
-                        
-                        continue;
-                    }
-                    
-                    m_graph.dethread();
-                }
-            } else
+            if (node->op() == GetLocal)
+                m_graph.dethread();
+            else
                 ASSERT(!node->hasVariableAccessData(m_graph));
             
             m_graph.convertToConstant(node, value);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to