equal
deleted
inserted
replaced
94 void PhaseChaitin::insert_proj( Block *b, uint i, Node *spill, uint maxlrg ) { |
94 void PhaseChaitin::insert_proj( Block *b, uint i, Node *spill, uint maxlrg ) { |
95 // Skip intervening ProjNodes. Do not insert between a ProjNode and |
95 // Skip intervening ProjNodes. Do not insert between a ProjNode and |
96 // its definer. |
96 // its definer. |
97 while( i < b->_nodes.size() && |
97 while( i < b->_nodes.size() && |
98 (b->_nodes[i]->is_Proj() || |
98 (b->_nodes[i]->is_Proj() || |
99 b->_nodes[i]->is_Phi() || |
99 b->_nodes[i]->is_Phi() ) ) |
100 (b->_nodes[i]->is_Mach() && |
|
101 b->_nodes[i]->as_Mach()->ideal_Opcode() == Op_CreateEx)) ) |
|
102 i++; |
100 i++; |
103 |
101 |
104 // Do not insert between a call and his Catch |
102 // Do not insert between a call and his Catch |
105 if( b->_nodes[i]->is_Catch() ) { |
103 if( b->_nodes[i]->is_Catch() ) { |
106 // Put the instruction at the top of the fall-thru block. |
104 // Put the instruction at the top of the fall-thru block. |