< prev index next >

src/hotspot/share/opto/node.cpp

Print this page
rev 52175 : JDK-8212603: Need to step over GC barriers in Node::eqv_uncast()


2439   }
2440 }
2441 
2442 void TypeNode::dump_compact_spec(outputStream *st) const {
2443   st->print("#");
2444   _type->dump_on(st);
2445 }
2446 #endif
2447 uint TypeNode::hash() const {
2448   return Node::hash() + _type->hash();
2449 }
2450 uint TypeNode::cmp( const Node &n ) const
2451 { return !Type::cmp( _type, ((TypeNode&)n)._type ); }
2452 const Type *TypeNode::bottom_type() const { return _type; }
2453 const Type* TypeNode::Value(PhaseGVN* phase) const { return _type; }
2454 
2455 //------------------------------ideal_reg--------------------------------------
2456 uint TypeNode::ideal_reg() const {
2457   return _type->ideal_reg();
2458 }









2439   }
2440 }
2441 
2442 void TypeNode::dump_compact_spec(outputStream *st) const {
2443   st->print("#");
2444   _type->dump_on(st);
2445 }
2446 #endif
2447 uint TypeNode::hash() const {
2448   return Node::hash() + _type->hash();
2449 }
2450 uint TypeNode::cmp( const Node &n ) const
2451 { return !Type::cmp( _type, ((TypeNode&)n)._type ); }
2452 const Type *TypeNode::bottom_type() const { return _type; }
2453 const Type* TypeNode::Value(PhaseGVN* phase) const { return _type; }
2454 
2455 //------------------------------ideal_reg--------------------------------------
2456 uint TypeNode::ideal_reg() const {
2457   return _type->ideal_reg();
2458 }
2459 
2460 bool Node::eqv_uncast(const Node* n) const {
2461   BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
2462   Node* obj1 = bs->step_over_gc_barrier(const_cast<Node*>(this));
2463   Node* obj2 = bs->step_over_gc_barrier(const_cast<Node*>(n));
2464   return (obj1->uncast() == obj2->uncast());
2465 }
< prev index next >