Mercurial > hg > graal-compiler
comparison src/share/vm/opto/connode.cpp @ 221:1e026f8da827
6710487: More than half of JDI Regression tests hang with COOPs in -Xcomp mode
Summary: Remove DecodeNNode::decode() and EncodePNode::encode() methods.
Reviewed-by: rasbold, never
author | kvn |
---|---|
date | Tue, 24 Jun 2008 10:43:29 -0700 |
parents | 8d191a7697e2 |
children | 9c2ecc2ffb12 |
comparison
equal
deleted
inserted
replaced
220:30369db7f5d2 | 221:1e026f8da827 |
---|---|
568 const Type *t = phase->type( in(1) ); | 568 const Type *t = phase->type( in(1) ); |
569 if (t == Type::TOP) return Type::TOP; | 569 if (t == Type::TOP) return Type::TOP; |
570 if (t == TypeNarrowOop::NULL_PTR) return TypePtr::NULL_PTR; | 570 if (t == TypeNarrowOop::NULL_PTR) return TypePtr::NULL_PTR; |
571 | 571 |
572 assert(t->isa_narrowoop(), "only narrowoop here"); | 572 assert(t->isa_narrowoop(), "only narrowoop here"); |
573 return t->is_narrowoop()->make_oopptr(); | 573 return t->make_ptr(); |
574 } | |
575 | |
576 Node* DecodeNNode::decode(PhaseTransform* phase, Node* value) { | |
577 if (value->is_EncodeP()) { | |
578 // (DecodeN (EncodeP p)) -> p | |
579 return value->in(1); | |
580 } | |
581 const Type* newtype = value->bottom_type(); | |
582 if (newtype == TypeNarrowOop::NULL_PTR) { | |
583 return phase->transform(new (phase->C, 1) ConPNode(TypePtr::NULL_PTR)); | |
584 } else if (newtype->isa_narrowoop()) { | |
585 return phase->transform(new (phase->C, 2) DecodeNNode(value, newtype->is_narrowoop()->make_oopptr())); | |
586 } else { | |
587 ShouldNotReachHere(); | |
588 return NULL; // to make C++ compiler happy. | |
589 } | |
590 } | 574 } |
591 | 575 |
592 Node* EncodePNode::Identity(PhaseTransform* phase) { | 576 Node* EncodePNode::Identity(PhaseTransform* phase) { |
593 const Type *t = phase->type( in(1) ); | 577 const Type *t = phase->type( in(1) ); |
594 if( t == Type::TOP ) return in(1); | 578 if( t == Type::TOP ) return in(1); |
604 const Type *t = phase->type( in(1) ); | 588 const Type *t = phase->type( in(1) ); |
605 if (t == Type::TOP) return Type::TOP; | 589 if (t == Type::TOP) return Type::TOP; |
606 if (t == TypePtr::NULL_PTR) return TypeNarrowOop::NULL_PTR; | 590 if (t == TypePtr::NULL_PTR) return TypeNarrowOop::NULL_PTR; |
607 | 591 |
608 assert(t->isa_oopptr(), "only oopptr here"); | 592 assert(t->isa_oopptr(), "only oopptr here"); |
609 return t->is_oopptr()->make_narrowoop(); | 593 return t->make_narrowoop(); |
610 } | 594 } |
611 | 595 |
612 Node* EncodePNode::encode(PhaseTransform* phase, Node* value) { | |
613 if (value->is_DecodeN()) { | |
614 // (EncodeP (DecodeN p)) -> p | |
615 return value->in(1); | |
616 } | |
617 const Type* newtype = value->bottom_type(); | |
618 if (newtype == TypePtr::NULL_PTR) { | |
619 return phase->transform(new (phase->C, 1) ConNNode(TypeNarrowOop::NULL_PTR)); | |
620 } else if (newtype->isa_oopptr()) { | |
621 return phase->transform(new (phase->C, 2) EncodePNode(value, newtype->is_oopptr()->make_narrowoop())); | |
622 } else { | |
623 ShouldNotReachHere(); | |
624 return NULL; // to make C++ compiler happy. | |
625 } | |
626 } | |
627 | 596 |
628 Node *EncodePNode::Ideal_DU_postCCP( PhaseCCP *ccp ) { | 597 Node *EncodePNode::Ideal_DU_postCCP( PhaseCCP *ccp ) { |
629 return MemNode::Ideal_common_DU_postCCP(ccp, this, in(1)); | 598 return MemNode::Ideal_common_DU_postCCP(ccp, this, in(1)); |
630 } | 599 } |
631 | 600 |