Request for reviews (L): 7004535: Clone loop predicates when loop is cloned

Vladimir Kozlov vladimir.kozlov at
Mon Mar 28 17:06:34 PDT 2011

I still need reviews for this. I merged with latest changes and added new method 
skip_loop_predicates() used in policy_do_remove_empty_loop().


Vladimir Kozlov wrote:
> Second loop opts changes.
> Fixed 7004535: Clone loop predicates when loop is cloned
> Currently loop predicates generated during parsing could be separated 
> from loops when loops are cloned. As result such predicates are removed. 
> There could be more optimization opportunities if loop predicates are 
> also cloned in such situations.
> Loop predicate code become big so I moved it into new file 
> loopPredicate.cpp.
> I separated the cloning code for IdealLoop and IterGVN. The generated Ideal
> code is the same but registration of new Ideal nodes is different enough to
> have separate methods, I think. I welcome any suggestions to improve 
> this code.
> Keep loop predicates after CCP and perform optimizations with them until 
> no more
> loop optimizations could be done. After that switch them off and do more 
> loop
> optimizations.
> VectorNode missed size_of() method as result it was cloned incorrectly.
> Added TraceLoopOpts outputs I missed in previous changes.
> Tested: ctw, nsk, jprt

More information about the hotspot-compiler-dev mailing list