Changeset 205380 in webkit
- Timestamp:
- Sep 2, 2016 4:13:50 PM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r205372 r205380 1 2016-09-02 Benjamin Poulain <bpoulain@apple.com> 2 3 [JSC] Remove some more useless cases from FTL Capabilities 4 https://bugs.webkit.org/show_bug.cgi?id=161466 5 6 Reviewed by Geoffrey Garen. 7 8 Some cases do not make sense: 9 -In: Fixup only generate CellUse. 10 -PutByIdXXX: same. 11 -GetIndexedPropertyStorage: those cases are the only ones supported 12 by DFG. We would have crashed in SpeculativeJIT if other modes 13 were generated. 14 15 * ftl/FTLCapabilities.cpp: 16 (JSC::FTL::canCompile): 17 * ftl/FTLLowerDFGToB3.cpp: 18 (JSC::FTL::DFG::LowerDFGToB3::compilePutById): 19 (JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage): 20 (JSC::FTL::DFG::LowerDFGToB3::compileIn): 21 1 22 2016-09-02 Chris Dumez <cdumez@apple.com> 2 23 -
trunk/Source/JavaScriptCore/ftl/FTLCapabilities.cpp
r205204 r205380 180 180 case ThrowReferenceError: 181 181 case Unreachable: 182 case In: 182 183 case IsJSArray: 183 184 case IsEmpty: … … 205 206 case GetDirectPname: 206 207 case GetEnumerableLength: 208 case GetIndexedPropertyStorage: 207 209 case GetPropertyEnumerator: 208 210 case GetEnumeratorStructurePname: … … 225 227 case Switch: 226 228 case TypeOf: 229 case PutById: 230 case PutByIdDirect: 231 case PutByIdFlush: 232 case PutByIdWithThis: 227 233 case PutGetterById: 228 234 case PutSetterById: … … 262 268 // pipeline failed to optimize out an Identity. 263 269 break; 264 case In:265 if (node->child2().useKind() == CellUse)266 break;267 return CannotCompile;268 case PutByIdDirect:269 case PutById:270 case PutByIdFlush:271 if (node->child1().useKind() == CellUse)272 break;273 return CannotCompile;274 case PutByIdWithThis:275 break;276 case GetIndexedPropertyStorage:277 if (node->arrayMode().type() == Array::String)278 break;279 if (isTypedView(node->arrayMode().typedArrayType()))280 break;281 return CannotCompile;282 270 case CheckArray: 283 271 switch (node->arrayMode().type()) { -
trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
r205204 r205380 2708 2708 void compilePutById() 2709 2709 { 2710 DFG_ASSERT(m_graph, m_node, m_node->child1().useKind() == CellUse); 2711 2710 2712 Node* node = m_node; 2711 2712 // See above; CellUse is easier so we do only that for now.2713 ASSERT(node->child1().useKind() == CellUse);2714 2715 2713 LValue base = lowCell(node->child1()); 2716 2714 LValue value = lowJSValue(node->child2()); … … 2814 2812 return; 2815 2813 } 2816 2814 2815 DFG_ASSERT(m_graph, m_node, isTypedView(m_node->arrayMode().typedArrayType())); 2817 2816 setStorage(m_out.loadPtr(cell, m_heaps.JSArrayBufferView_vector)); 2818 2817 } … … 6512 6511 void compileIn() 6513 6512 { 6513 DFG_ASSERT(m_graph, m_node, m_node->child2().useKind() == CellUse); 6514 6514 6515 Node* node = m_node; 6515 6516 Edge base = node->child2();
Note: See TracChangeset
for help on using the changeset viewer.