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

Vladimir Kozlov vladimir.kozlov at oracle.com
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().

http://cr.openjdk.java.net/~kvn/7004535/webrev.01

Thanks,
Vladimir

Vladimir Kozlov wrote:
> Second loop opts changes.
> 
> http://cr.openjdk.java.net/~kvn/7004535/webrev
> 
> 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