comparison src/share/vm/opto/memnode.cpp @ 6139:0919b2e7895d

7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere Summary: Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method. Reviewed-by: twisti
author kvn
date Mon, 11 Jun 2012 14:58:51 -0700
parents 52474ec73861
children 8c92982cbbc4
comparison
equal deleted inserted replaced
6137:829ee34e7cbd 6139:0919b2e7895d
714 continue; 714 continue;
715 715
716 case Op_DecodeN: // No change to NULL-ness, so peek thru 716 case Op_DecodeN: // No change to NULL-ness, so peek thru
717 adr = adr->in(1); 717 adr = adr->in(1);
718 continue; 718 continue;
719
720 case Op_EncodeP:
721 // EncodeP node's control edge could be set by this method
722 // when EncodeP node depends on CastPP node.
723 //
724 // Use its control edge for memory op because EncodeP may go away
725 // later when it is folded with following or preceding DecodeN node.
726 if (adr->in(0) == NULL) {
727 // Keep looking for cast nodes.
728 adr = adr->in(1);
729 continue;
730 }
731 ccp->hash_delete(n);
732 n->set_req(MemNode::Control, adr->in(0));
733 ccp->hash_insert(n);
734 return n;
719 735
720 case Op_CastPP: 736 case Op_CastPP:
721 // If the CastPP is useless, just peek on through it. 737 // If the CastPP is useless, just peek on through it.
722 if( ccp->type(adr) == ccp->type(adr->in(1)) ) { 738 if( ccp->type(adr) == ccp->type(adr->in(1)) ) {
723 // Remember the cast that we've peeked though. If we peek 739 // Remember the cast that we've peeked though. If we peek