Mercurial > hg > graal-jvmci-8
comparison 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 |
comparison
equal
deleted
inserted
replaced
222:2a1a77d3458f | 223:1dd146f17531 |
---|---|
1067 if( to && _AliasLevel >= 2 && to != TypeOopPtr::BOTTOM ) { | 1067 if( to && _AliasLevel >= 2 && to != TypeOopPtr::BOTTOM ) { |
1068 if( ptr == TypePtr::Constant ) { | 1068 if( ptr == TypePtr::Constant ) { |
1069 // No constant oop pointers (such as Strings); they alias with | 1069 // No constant oop pointers (such as Strings); they alias with |
1070 // unknown strings. | 1070 // unknown strings. |
1071 tj = to = TypeInstPtr::make(TypePtr::BotPTR,to->klass(),false,0,offset); | 1071 tj = to = TypeInstPtr::make(TypePtr::BotPTR,to->klass(),false,0,offset); |
1072 } else if( to->is_instance_field() ) { | 1072 } else if( to->is_known_instance_field() ) { |
1073 tj = to; // Keep NotNull and klass_is_exact for instance type | 1073 tj = to; // Keep NotNull and klass_is_exact for instance type |
1074 } else if( ptr == TypePtr::NotNull || to->klass_is_exact() ) { | 1074 } else if( ptr == TypePtr::NotNull || to->klass_is_exact() ) { |
1075 // During the 2nd round of IterGVN, NotNull castings are removed. | 1075 // During the 2nd round of IterGVN, NotNull castings are removed. |
1076 // Make sure the Bottom and NotNull variants alias the same. | 1076 // Make sure the Bottom and NotNull variants alias the same. |
1077 // Also, make sure exact and non-exact variants alias the same. | 1077 // Also, make sure exact and non-exact variants alias the same. |
1188 _index = i; | 1188 _index = i; |
1189 _adr_type = at; | 1189 _adr_type = at; |
1190 _field = NULL; | 1190 _field = NULL; |
1191 _is_rewritable = true; // default | 1191 _is_rewritable = true; // default |
1192 const TypeOopPtr *atoop = (at != NULL) ? at->isa_oopptr() : NULL; | 1192 const TypeOopPtr *atoop = (at != NULL) ? at->isa_oopptr() : NULL; |
1193 if (atoop != NULL && atoop->is_instance()) { | 1193 if (atoop != NULL && atoop->is_known_instance()) { |
1194 const TypeOopPtr *gt = atoop->cast_to_instance(TypeOopPtr::UNKNOWN_INSTANCE); | 1194 const TypeOopPtr *gt = atoop->cast_to_instance_id(TypeOopPtr::InstanceBot); |
1195 _general_index = Compile::current()->get_alias_index(gt); | 1195 _general_index = Compile::current()->get_alias_index(gt); |
1196 } else { | 1196 } else { |
1197 _general_index = 0; | 1197 _general_index = 0; |
1198 } | 1198 } |
1199 } | 1199 } |