Mercurial > hg > truffle
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, ®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 |