Integrated: 8283466: C2: missing skeleton predicates in peeled loop

Emanuel Peter epeter at openjdk.java.net
Thu Jun 2 06:53:34 UTC 2022


On Thu, 19 May 2022 08:56:22 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

> Implemented initializing skeleton predicates for the peeled loop.
> 
> We have some predicates / checks before loops that are dependent on the range of the loop, they are checked at runtime. When we split a loop (eg. peeling, pre/main/post, unswitching) one of the sub-loops may get impossible data types and remove the data flow. For static type analysis for the control flow, we need so called skeleton predicates that implement these loop checks before each split off loop. If we do not do this static analysis we generally get `bad graph` asserts, as only removing data flow and not control flow leads to broken graphs.
> 
> This was already implemented for pre/main/post loops and loop unswitching, but not for peeling.
> 
> Ran large test suite.
> Manual inspection shows that the instantiated skeleton predicate indeed collapses, in the provided regression test.
> 
> Rerunning some tests now...

This pull request has now been integrated.

Changeset: 199832a7
Author:    Emanuel Peter <epeter at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/199832a7101ca9dbfe7744ca0a1c4ff11d8832f2
Stats:     248 lines in 4 files changed: 211 ins; 0 del; 37 mod

8283466: C2: missing skeleton predicates in peeled loop

Reviewed-by: roland, chagedorn

-------------

PR: https://git.openjdk.java.net/jdk/pull/8783


More information about the hotspot-compiler-dev mailing list