Changeset 179817 in webkit for trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp
- Timestamp:
- Feb 8, 2015, 6:42:22 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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.