6775880: EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now")

Create new "eliminated" BoxLock node for monitor debug info when corresponding locks are eliminated.

Reviewed-by: never
This commit is contained in:
Vladimir Kozlov 2008-12-03 13:41:37 -08:00
parent 2bba3afabc
commit f2f18a01e5
9 changed files with 188 additions and 44 deletions

View file

@ -44,10 +44,15 @@ BoxLockNode::BoxLockNode( int slot ) : Node( Compile::current()->root() ),
_inmask.Insert(reg);
}
//-----------------------------hash--------------------------------------------
uint BoxLockNode::hash() const {
return Node::hash() + _slot + (_is_eliminated ? Compile::current()->fixed_slots() : 0);
}
//------------------------------cmp--------------------------------------------
uint BoxLockNode::cmp( const Node &n ) const {
const BoxLockNode &bn = (const BoxLockNode &)n;
return bn._slot == _slot;
return bn._slot == _slot && bn._is_eliminated == _is_eliminated;
}
OptoReg::Name BoxLockNode::stack_slot(Node* box_node) {