Request for reviews (L): 7004535: Clone loop predicates when loop is cloned
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().
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
> 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
> 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