6766316: assert(!nocreate,"Cannot build a phi for a block already parsed.")
authorkvn
Tue, 18 Nov 2008 12:40:28 -0800
changeset 1554 59019800a87c
parent 1553 fc10c169d15d
child 1555 dfb39a52c8a8
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
hotspot/src/share/vm/opto/parse.hpp
--- 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); }