Changeset 154305 in webkit for trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp
- Timestamp:
- Aug 19, 2013, 4:16:01 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp
r153292 r154305 397 397 return 0; 398 398 } 399 case PutStructure:400 case PutByOffset:401 // GetByVal currently always speculates that it's accessing an402 // array with an integer index, which means that it's impossible403 // for a structure change or a put to property storage to affect404 // the GetByVal.405 break;406 399 default: 407 400 if (m_graph.clobbersWorld(node)) … … 635 628 break; 636 629 637 case PutStructure:638 // Changing the structure cannot change the outcome of a property get.639 break;640 641 630 case PutByVal: 642 631 case PutByValAlias: … … 725 714 return 0; 726 715 727 case PutByOffset:728 case PutStructure:729 // Changing the structure or putting to the storage cannot730 // change the property storage pointer.731 break;732 733 716 case PutByVal: 734 717 case PutByValAlias: … … 764 747 765 748 switch (node->op()) { 766 case PutByOffset:767 case PutStructure:768 // Changing the structure or putting to the storage cannot769 // change the property storage pointer.770 break;771 772 749 case CheckArray: 773 750 if (node->child1() == child1 && node->arrayMode() == arrayMode) … … 804 781 } 805 782 806 case PutByOffset: 807 case PutStructure: 808 // Changing the structure or putting to the storage cannot 809 // change the property storage pointer. 810 break; 811 783 default: 784 if (m_graph.clobbersWorld(node)) 785 return 0; 786 break; 787 } 788 } 789 return 0; 790 } 791 792 Node* getTypedArrayByteOffsetLoadElimination(Node* child1) 793 { 794 for (unsigned i = m_indexInBlock; i--;) { 795 Node* node = m_currentBlock->at(i); 796 if (node == child1) 797 break; 798 799 switch (node->op()) { 800 case GetTypedArrayByteOffset: { 801 if (node->child1() == child1) 802 return node; 803 break; 804 } 805 812 806 default: 813 807 if (m_graph.clobbersWorld(node)) … … 1344 1338 break; 1345 1339 } 1340 1341 case GetTypedArrayByteOffset: { 1342 if (cseMode == StoreElimination) 1343 break; 1344 setReplacement(getTypedArrayByteOffsetLoadElimination(node->child1().node())); 1345 break; 1346 } 1346 1347 1347 1348 case GetButterfly:
Note:
See TracChangeset
for help on using the changeset viewer.