Request for reviews (L): 6894779: Loop Predication for Loop Optimizer in C2
Vladimir.Kozlov at Sun.COM
Fri Jan 8 12:14:58 PST 2010
This version looks good.
Changpeng Fang wrote:
> 6894779: Loop Predication for Loop Optimizer in C2
> Loop Predication Description:
> The idea is to insert a predicate on the entry path to a loop, and raise
> a uncommon trap
> if the check of the condition(s) fails. The condition checks are
> promoted from inside the
> loop body, and thus the checks inside the loop could be eliminated.
> Currently implementation works for array range checks and (loop)
> invariant checks (null
> checks, array checks, etc.)
> Loop Predication Advantages:
> (1) No pre- and post-loops required. As a result, the optimization
> applies to the whole loop
> body. In addition, the code size increase due to the optimization is
> very limited (we don't
> need three copies of the loop)
> (2) In this implementation, we apply loop predication to each level of
> the loop, so that additional
> optimization opportunities have been explored.
> (3) Because it doesn't create pre- and post-loops, loop predication can
> be applied to loops with calls.
> Reviewed by:
> This work was initiated by Ross Knippel and has been directed and
> pre-reviewed by
> Thomas Rodriguez and Vladimir Kozlov (many thanks)
> JPRT, refworkload, CTW, specjvm2008
More information about the hotspot-compiler-dev