Mercurial > hg > truffle
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 |