Changeset 179817 in webkit
- Timestamp:
- Feb 8, 2015 6:42:22 PM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r179816 r179817 1 2015-02-08 Benjamin Poulain <benjamin@webkit.org> 2 3 Remove a few duplicate propagation steps from the DFG's PredictionPropagation phase 4 https://bugs.webkit.org/show_bug.cgi?id=141363 5 6 Reviewed by Darin Adler. 7 8 * dfg/DFGPredictionPropagationPhase.cpp: 9 (JSC::DFG::PredictionPropagationPhase::propagate): 10 Some blocks were duplicated, they probably evolved separately 11 to the same state. 12 1 13 2015-02-08 Benjamin Poulain <benjamin@webkit.org> 2 14 -
trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp
r179478 r179817 250 250 break; 251 251 } 252 253 case ArithAdd: { 254 SpeculatedType left = node->child1()->prediction(); 255 SpeculatedType right = node->child2()->prediction(); 256 257 if (left && right) { 258 if (m_graph.addSpeculationMode(node, m_pass) != DontSpeculateInt32) 259 changed |= mergePrediction(SpecInt32); 260 else if (m_graph.addShouldSpeculateMachineInt(node)) 261 changed |= mergePrediction(SpecInt52); 262 else 263 changed |= mergePrediction(speculatedDoubleTypeForPredictions(left, right)); 264 } 265 break; 266 } 267 252 253 case ArithAdd: 268 254 case ArithSub: { 269 255 SpeculatedType left = node->child1()->prediction(); … … 321 307 break; 322 308 } 323 324 case ArithDiv: { 325 SpeculatedType left = node->child1()->prediction(); 326 SpeculatedType right = node->child2()->prediction(); 327 328 if (left && right) { 329 if (Node::shouldSpeculateInt32OrBooleanForArithmetic(node->child1().node(), node->child2().node()) 330 && node->canSpeculateInt32(m_pass)) 331 changed |= mergePrediction(SpecInt32); 332 else 333 changed |= mergePrediction(SpecBytecodeDouble); 334 } 335 break; 336 } 337 309 310 case ArithDiv: 338 311 case ArithMod: { 339 312 SpeculatedType left = node->child1()->prediction(); … … 596 569 break; 597 570 } 598 case HasGenericProperty: { 599 changed |= setPrediction(SpecBoolean); 600 break; 601 } 602 case HasStructureProperty: { 603 changed |= setPrediction(SpecBoolean); 604 break; 605 } 571 case HasGenericProperty: 572 case HasStructureProperty: 606 573 case HasIndexedProperty: { 607 574 changed |= setPrediction(SpecBoolean); 608 575 break; 609 576 } 610 case GetStructurePropertyEnumerator: { 611 changed |= setPrediction(SpecCell); 612 break; 613 } 577 case GetStructurePropertyEnumerator: 614 578 case GetGenericPropertyEnumerator: { 615 579 changed |= setPrediction(SpecCell);
Note: See TracChangeset
for help on using the changeset viewer.