comparison src/share/vm/opto/chaitin.hpp @ 4776:5da7201222d5

7110824: ctw/jarfiles/GUI3rdParty_jar/ob_mask_DateField crashes VM Summary: Change yank_if_dead() to recursive method to remove all dead inputs. Reviewed-by: never
author kvn
date Sat, 07 Jan 2012 10:39:23 -0800
parents f6f3bb0ee072
children 8c92982cbbc4
comparison
equal deleted inserted replaced
4771:22cee0ee8927 4776:5da7201222d5
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, &regnd); 485 return yank_if_dead(old, current_block, &value, &regnd);
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 &regnd, bool can_change_regs ); 494 int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List &regnd, bool can_change_regs );
491 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd ); 495 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd );
492 bool may_be_copy_of_callee( Node *def ) const; 496 bool may_be_copy_of_callee( Node *def ) const;
493 497