2015-02-06 Filip Pizlo <fpizlo@apple.com>
+ 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 <fpizlo@apple.com>
+
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
// - 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();
}
case SetArgument: {
- VariableAccessData* variable = node->variableAccessData();
- if (variable->isCaptured())
- break;
node->convertToPhantom();
break;
}