Mercurial > hg > truffle
diff src/share/vm/opto/compile.cpp @ 223:1dd146f17531
6716441: error in meet with +DoEscapeAnalysis
Summary: Set instance_id to InstanceBot for InstPtr->meet(AryPtr) when types are not related.
Reviewed-by: jrose, never
author | kvn |
---|---|
date | Thu, 26 Jun 2008 13:34:00 -0700 |
parents | 2a1a77d3458f |
children | 9c2ecc2ffb12 524eca34ea76 |
line wrap: on
line diff
--- a/src/share/vm/opto/compile.cpp Tue Jun 24 16:00:14 2008 -0700 +++ b/src/share/vm/opto/compile.cpp Thu Jun 26 13:34:00 2008 -0700 @@ -1069,7 +1069,7 @@ // No constant oop pointers (such as Strings); they alias with // unknown strings. tj = to = TypeInstPtr::make(TypePtr::BotPTR,to->klass(),false,0,offset); - } else if( to->is_instance_field() ) { + } else if( to->is_known_instance_field() ) { tj = to; // Keep NotNull and klass_is_exact for instance type } else if( ptr == TypePtr::NotNull || to->klass_is_exact() ) { // During the 2nd round of IterGVN, NotNull castings are removed. @@ -1190,8 +1190,8 @@ _field = NULL; _is_rewritable = true; // default const TypeOopPtr *atoop = (at != NULL) ? at->isa_oopptr() : NULL; - if (atoop != NULL && atoop->is_instance()) { - const TypeOopPtr *gt = atoop->cast_to_instance(TypeOopPtr::UNKNOWN_INSTANCE); + if (atoop != NULL && atoop->is_known_instance()) { + const TypeOopPtr *gt = atoop->cast_to_instance_id(TypeOopPtr::InstanceBot); _general_index = Compile::current()->get_alias_index(gt); } else { _general_index = 0;