RFR: 8314191: C2 compilation fails with "bad AD file"

Tobias Hartmann thartmann at openjdk.org
Mon Sep 4 05:08:42 UTC 2023


On Sat, 2 Sep 2023 11:34:17 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:

> Hi,
> 
> The root cause is that the comparison in the form `x + inc <=> bound` being transformed into `x u<=> bound - min_value` when `inc` is the min value of the loop type. The fix I propose is to avoid the transformation when either side is a counted loop increment.
> 
> Thanks a lot.

The fix looks good to me otherwise.

test/hotspot/jtreg/compiler/c2/MinValueStrideCountedLoop.java line 30:

> 28:  * @summary Loop increment should not be transformed into unsigned comparison
> 29:  *
> 30:  * @run main/othervm -Xcomp -XX:+TraceLoopOpts -XX:-TieredCompilation

`TraceLoopOpts` is a C2-only debug flag, the test needs a `@requires vm.debug & vm.compiler2.enabled`

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

Changes requested by thartmann (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15551#pullrequestreview-1608763694
PR Review Comment: https://git.openjdk.org/jdk/pull/15551#discussion_r1314440245


More information about the hotspot-compiler-dev mailing list