483 assert(v->outcnt() != 0, "no dead values"); |
483 assert(v->outcnt() != 0, "no dead values"); |
484 old->replace_by(v); |
484 old->replace_by(v); |
485 return yank_if_dead(old, current_block, &value, ®nd); |
485 return yank_if_dead(old, current_block, &value, ®nd); |
486 } |
486 } |
487 |
487 |
488 int yank_if_dead( Node *old, Block *current_block, Node_List *value, Node_List *regnd ); |
488 int yank_if_dead( Node *old, Block *current_block, Node_List *value, Node_List *regnd ) { |
|
489 return yank_if_dead_recurse(old, old, current_block, value, regnd); |
|
490 } |
|
491 int yank_if_dead_recurse(Node *old, Node *orig_old, Block *current_block, |
|
492 Node_List *value, Node_List *regnd); |
489 int yank( Node *old, Block *current_block, Node_List *value, Node_List *regnd ); |
493 int yank( Node *old, Block *current_block, Node_List *value, Node_List *regnd ); |
490 int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List ®nd, bool can_change_regs ); |
494 int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List ®nd, bool can_change_regs ); |
491 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List ®nd ); |
495 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List ®nd ); |
492 bool may_be_copy_of_callee( Node *def ) const; |
496 bool may_be_copy_of_callee( Node *def ) const; |
493 |
497 |