comparison src/share/vm/opto/chaitin.hpp @ 70:b683f557224b

6661247: Internal bug in 32-bit HotSpot optimizer while bit manipulations Summary: copy elimination of a constant value results in incorrect execution Reviewed-by: kvn, sgoldman, rasbold
author never
date Wed, 19 Mar 2008 15:14:36 -0700
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
69:8bb88f9877e5 70:b683f557224b
455 int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List &regnd, bool can_change_regs ); 455 int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List &regnd, bool can_change_regs );
456 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd ); 456 int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd );
457 bool may_be_copy_of_callee( Node *def ) const; 457 bool may_be_copy_of_callee( Node *def ) const;
458 458
459 // If nreg already contains the same constant as val then eliminate it 459 // If nreg already contains the same constant as val then eliminate it
460 bool eliminate_copy_of_constant(Node* val, Block *current_block, Node_List& value, Node_List &regnd, 460 bool eliminate_copy_of_constant(Node* val, Node* n,
461 Block *current_block, Node_List& value, Node_List &regnd,
461 OptoReg::Name nreg, OptoReg::Name nreg2); 462 OptoReg::Name nreg, OptoReg::Name nreg2);
462 // Extend the node to LRG mapping 463 // Extend the node to LRG mapping
463 void add_reference( const Node *node, const Node *old_node); 464 void add_reference( const Node *node, const Node *old_node);
464 465
465 private: 466 private: