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

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Mar 24 19:07:54 PDT 2011


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