Changeset 160796 in webkit for trunk/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
- Timestamp:
- Dec 18, 2013, 2:50:40 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
r160347 r160796 301 301 ASSERT(status.newStructure()->outOfLineCapacity()); 302 302 ASSERT(!isInlineOffset(status.offset())); 303 propertyStorage = Edge(m_insertionSet.insertNode(303 Node* allocatePropertyStorage = m_insertionSet.insertNode( 304 304 indexInBlock, SpecNone, AllocatePropertyStorage, 305 codeOrigin, OpInfo(transitionData), childEdge)); 305 codeOrigin, OpInfo(transitionData), childEdge); 306 m_insertionSet.insertNode(indexInBlock, SpecNone, StoreBarrier, codeOrigin, Edge(node->child1().node(), KnownCellUse)); 307 propertyStorage = Edge(allocatePropertyStorage); 306 308 } else { 307 309 ASSERT(structure->outOfLineCapacity()); … … 309 311 ASSERT(!isInlineOffset(status.offset())); 310 312 311 propertyStorage = Edge(m_insertionSet.insertNode(313 Node* reallocatePropertyStorage = m_insertionSet.insertNode( 312 314 indexInBlock, SpecNone, ReallocatePropertyStorage, codeOrigin, 313 315 OpInfo(transitionData), childEdge, 314 316 Edge(m_insertionSet.insertNode( 315 indexInBlock, SpecNone, GetButterfly, codeOrigin, childEdge)))); 317 indexInBlock, SpecNone, GetButterfly, codeOrigin, childEdge))); 318 m_insertionSet.insertNode(indexInBlock, SpecNone, StoreBarrier, codeOrigin, Edge(node->child1().node(), KnownCellUse)); 319 propertyStorage = Edge(reallocatePropertyStorage); 316 320 } 317 321 318 322 if (status.isSimpleTransition()) { 319 m_insertionSet.insertNode(320 indexInBlock, SpecNone, PutStructure, codeOrigin,321 OpInfo(transitionData), childEdge);322 } 323 323 Node* putStructure = m_graph.addNode(SpecNone, PutStructure, codeOrigin, OpInfo(transitionData), childEdge); 324 m_insertionSet.insertNode(indexInBlock, SpecNone, StoreBarrier, codeOrigin, Edge(node->child1().node(), KnownCellUse)); 325 m_insertionSet.insert(indexInBlock, putStructure); 326 } 327 324 328 node->convertToPutByOffset(m_graph.m_storageAccessData.size(), propertyStorage); 329 m_insertionSet.insertNode(indexInBlock, SpecNone, ConditionalStoreBarrier, codeOrigin, 330 Edge(node->child2().node(), KnownCellUse), Edge(node->child3().node(), UntypedUse)); 325 331 326 332 StorageAccessData storageAccessData; … … 330 336 break; 331 337 } 332 338 339 case ConditionalStoreBarrier: { 340 if (!m_interpreter.needsTypeCheck(node->child2().node(), ~SpecCell)) { 341 node->convertToPhantom(); 342 eliminated = true; 343 } 344 break; 345 } 346 347 case StoreBarrier: 348 case StoreBarrierWithNullCheck: { 349 break; 350 } 351 333 352 default: 334 353 break;
Note:
See TracChangeset
for help on using the changeset viewer.