Changeset 225834 in webkit
- Timestamp:
- Dec 12, 2017 7:04:22 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JSTests/ChangeLog
r225832 r225834 1 2017-12-12 Saam Barati <sbarati@apple.com> 2 3 We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize 4 https://bugs.webkit.org/show_bug.cgi?id=180725 5 <rdar://problem/35970511> 6 7 Reviewed by Michael Saboff. 8 9 * stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added. 10 (f1): 11 (f2): 12 (let.o2.valueOf): 13 1 14 2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com> 2 15 -
trunk/Source/JavaScriptCore/ChangeLog
r225832 r225834 1 2017-12-12 Saam Barati <sbarati@apple.com> 2 3 We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize 4 https://bugs.webkit.org/show_bug.cgi?id=180725 5 <rdar://problem/35970511> 6 7 Reviewed by Michael Saboff. 8 9 * dfg/DFGClobberize.h: 10 (JSC::DFG::clobberize): 11 * dfg/DFGPreciseLocalClobberize.h: 12 (JSC::DFG::PreciseLocalClobberizeAdaptor::readTop): 13 1 14 2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com> 2 15 -
trunk/Source/JavaScriptCore/dfg/DFGClobberize.h
r225832 r225834 1313 1313 1314 1314 case Spread: { 1315 if (node->child1()->op() == PhantomCreateRest) 1316 read(Stack); 1317 1315 1318 if (node->child1().useKind() == ArrayUse) { 1316 1319 // FIXME: We can probably CSE these together, but we need to construct the right rules -
trunk/Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h
r221528 r225834 121 121 }; 122 122 123 auto read PhantomSpreadNode= [&] (Node* spread) {124 ASSERT(spread->op() == PhantomSpread);123 auto readSpreadOfPhantomCreateRest = [&] (Node* spread) { 124 ASSERT(spread->op() == Spread || spread->op() == PhantomSpread); 125 125 ASSERT(spread->child1()->op() == PhantomCreateRest); 126 126 InlineCallFrame* inlineCallFrame = spread->child1()->origin.semantic.inlineCallFrame; … … 136 136 Node* child = m_graph.varArgChild(arrayWithSpread, i).node(); 137 137 if (child->op() == PhantomSpread) 138 read PhantomSpreadNode(child);138 readSpreadOfPhantomCreateRest(child); 139 139 } 140 140 } … … 182 182 readNewArrayWithSpreadNode(m_node->argumentsChild().node()); 183 183 else 184 read PhantomSpreadNode(m_node->argumentsChild().node());184 readSpreadOfPhantomCreateRest(m_node->argumentsChild().node()); 185 185 } else { 186 186 InlineCallFrame* inlineCallFrame; … … 203 203 break; 204 204 } 205 206 case Spread: 207 if (m_node->child1()->op() == PhantomCreateRest) 208 readSpreadOfPhantomCreateRest(m_node); 209 break; 205 210 206 211 case NewArrayWithSpread: {
Note: See TracChangeset
for help on using the changeset viewer.