Title: [179767] trunk/Source/_javascript_Core
Revision
179767
Author
[email protected]
Date
2015-02-06 15:37:39 -0800 (Fri, 06 Feb 2015)

Log Message

DFG SSA shouldn't have SetArgument nodes
https://bugs.webkit.org/show_bug.cgi?id=141342

Reviewed by Mark Lam.

I was wondering why we kept the SetArgument around for captured
variables. It turns out we did so because we thought we had to, even
though we didn't have to. The node is meaningless in SSA.

* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (179766 => 179767)


--- trunk/Source/_javascript_Core/ChangeLog	2015-02-06 23:31:30 UTC (rev 179766)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-02-06 23:37:39 UTC (rev 179767)
@@ -1,5 +1,21 @@
 2015-02-06  Filip Pizlo  <[email protected]>
 
+        DFG SSA shouldn't have SetArgument nodes
+        https://bugs.webkit.org/show_bug.cgi?id=141342
+
+        Reviewed by Mark Lam.
+
+        I was wondering why we kept the SetArgument around for captured
+        variables. It turns out we did so because we thought we had to, even
+        though we didn't have to. The node is meaningless in SSA.
+
+        * dfg/DFGSSAConversionPhase.cpp:
+        (JSC::DFG::SSAConversionPhase::run):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::compileNode):
+
+2015-02-06  Filip Pizlo  <[email protected]>
+
         It should be possible to use the DFG SetArgument node to indicate that someone set the value of a local out-of-band
         https://bugs.webkit.org/show_bug.cgi?id=141337
 

Modified: trunk/Source/_javascript_Core/dfg/DFGSSAConversionPhase.cpp (179766 => 179767)


--- trunk/Source/_javascript_Core/dfg/DFGSSAConversionPhase.cpp	2015-02-06 23:31:30 UTC (rev 179766)
+++ trunk/Source/_javascript_Core/dfg/DFGSSAConversionPhase.cpp	2015-02-06 23:37:39 UTC (rev 179767)
@@ -198,8 +198,7 @@
         //   - PhantomLocal becomes Phantom, and its child is whatever is specified by
         //     valueForOperand.
         //
-        //   - SetArgument is removed unless it's a captured variable. Note that GetArgument nodes
-        //     have already been inserted.
+        //   - SetArgument is removed. Note that GetArgument nodes have already been inserted.
         Operands<Node*> valueForOperand(OperandsLike, m_graph.block(0)->variablesAtHead);
         for (BasicBlock* block : m_graph.blocksInPreOrder()) {
             valueForOperand.clear();
@@ -334,9 +333,6 @@
                 }
                     
                 case SetArgument: {
-                    VariableAccessData* variable = node->variableAccessData();
-                    if (variable->isCaptured())
-                        break;
                     node->convertToPhantom();
                     break;
                 }

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (179766 => 179767)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2015-02-06 23:31:30 UTC (rev 179766)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2015-02-06 23:37:39 UTC (rev 179767)
@@ -735,7 +735,6 @@
             break;
 
         case PhantomLocal:
-        case SetArgument:
         case LoopHint:
         case VariableWatchpoint:
         case FunctionReentryWatchpoint:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to