Mercurial > hg > truffle
diff src/share/vm/opto/loopUnswitch.cpp @ 2383:9dc311b8473e
7008866: Missing loop predicate for loop with multiple entries
Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never
author | kvn |
---|---|
date | Mon, 21 Mar 2011 11:28:14 -0700 |
parents | f95d63e2154a |
children | 1d1603768966 08eb13460b3a |
line wrap: on
line diff
--- a/src/share/vm/opto/loopUnswitch.cpp Mon Mar 21 02:30:49 2011 -0700 +++ b/src/share/vm/opto/loopUnswitch.cpp Mon Mar 21 11:28:14 2011 -0700 @@ -110,6 +110,13 @@ IfNode* unswitch_iff = find_unswitching_candidate((const IdealLoopTree *)loop); assert(unswitch_iff != NULL, "should be at least one"); +#ifndef PRODUCT + if (TraceLoopOpts) { + tty->print("Unswitch %d ", head->unswitch_count()+1); + loop->dump_head(); + } +#endif + // Need to revert back to normal loop if (head->is_CountedLoop() && !head->as_CountedLoop()->is_normal_loop()) { head->as_CountedLoop()->set_normal_loop();