1.1 --- a/src/share/vm/opto/chaitin.hpp Thu Aug 06 12:24:41 2009 -0700 1.2 +++ b/src/share/vm/opto/chaitin.hpp Fri Aug 14 15:53:46 2009 -0700 1.3 @@ -458,6 +458,16 @@ 1.4 // Post-Allocation peephole copy removal 1.5 void post_allocate_copy_removal(); 1.6 Node *skip_copies( Node *c ); 1.7 + // Replace the old node with the current live version of that value 1.8 + // and yank the old value if it's dead. 1.9 + int replace_and_yank_if_dead( Node *old, OptoReg::Name nreg, 1.10 + Block *current_block, Node_List& value, Node_List& regnd ) { 1.11 + Node* v = regnd[nreg]; 1.12 + assert(v->outcnt() != 0, "no dead values"); 1.13 + old->replace_by(v); 1.14 + return yank_if_dead(old, current_block, &value, ®nd); 1.15 + } 1.16 + 1.17 int yank_if_dead( Node *old, Block *current_block, Node_List *value, Node_List *regnd ); 1.18 int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List ®nd, bool can_change_regs ); 1.19 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List ®nd );