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