# HG changeset patch # User kvn # Date 1227040828 28800 # Node ID b1d6a3e958105f1c277de69941f1b2e71d336e34 # Parent de78b80cedecec2587daa1ea0cf9e620b6bef3b2 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 diff -r de78b80cedec -r b1d6a3e95810 src/share/vm/opto/parse.hpp --- a/src/share/vm/opto/parse.hpp Tue Nov 18 12:31:53 2008 -0800 +++ b/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); }