src/share/vm/opto/lcm.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/lcm.cpp Tue Nov 27 18:45:04 2012
--- new/src/share/vm/opto/lcm.cpp Tue Nov 27 18:45:04 2012
*** 1004,1014 ****
--- 1004,1014 ----
}
//------------------------------call_catch_cleanup-----------------------------
// If we inserted any instructions between a Call and his CatchNode,
// clone the instructions on all paths below the Catch.
! void Block::call_catch_cleanup(Block_Array &bbs, Compile* C) {
// End of region to clone
uint end = end_idx();
if( !_nodes[end]->is_Catch() ) return;
// Start of region to clone
*** 1066,1076 ****
--- 1066,1076 ----
} // End of for all Nodes in cloned area
// Remove the now-dead cloned ops
for(uint i3 = beg; i3 < end; i3++ ) {
! _nodes[beg]->disconnect_inputs(NULL, C);
_nodes.remove(beg);
}
// If the successor blocks have a CreateEx node, move it back to the top
for(uint i4 = 0; i4 < _num_succs; i4++ ) {
*** 1079,1089 ****
--- 1079,1089 ----
// Remove any newly created, but dead, nodes.
for( uint j = new_cnt; j > 0; j-- ) {
Node *n = sb->_nodes[j];
if (n->outcnt() == 0 &&
(!n->is_Proj() || n->as_Proj()->in(0)->outcnt() == 1) ){
! n->disconnect_inputs(NULL, C);
sb->_nodes.remove(j);
new_cnt--;
}
}
// If any newly created nodes remain, move the CreateEx node to the top
src/share/vm/opto/lcm.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File