6766316: assert(!nocreate,"Cannot build a phi for a block already parsed.")
Summary: Don't use the invariant local information if there are irreducible loops.
Reviewed-by: never
--- a/hotspot/src/share/vm/opto/parse.hpp Tue Nov 18 12:31:53 2008 -0800
+++ b/hotspot/src/share/vm/opto/parse.hpp Tue Nov 18 12:40:28 2008 -0800
@@ -175,7 +175,7 @@
bool is_SEL_backedge(Block* pred) const{ return is_SEL_head() && pred->rpo() >= rpo(); }
bool is_invariant_local(uint i) const {
const JVMState* jvms = start_map()->jvms();
- if (!jvms->is_loc(i)) return false;
+ if (!jvms->is_loc(i) || flow()->outer()->has_irreducible_entry()) return false;
return flow()->is_invariant_local(i - jvms->locoff());
}
bool can_elide_SEL_phi(uint i) const { assert(is_SEL_head(),""); return is_invariant_local(i); }