Integrated: 8332032: C2: Remove ExpandSubTypeCheckAtParseTime flag

Christian Hagedorn chagedorn at openjdk.org
Fri May 31 07:00:05 UTC 2024


On Tue, 28 May 2024 15:01:14 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

> With this patch I propose to remove the diagnostic product flag `ExpandSubTypeCheckAtParseTime` for the following reasons:
> - Expanding sub type checks eagerly during parse time has a maintenance cost. We've had to make special fixes due to skipping `SubTypeCheckNodes` in the past (recent example: [JDK-8328702](https://bugs.openjdk.org/browse/JDK-8328702), where the idea of removing this flag was first discussed).
> - This stress option has not helped much to find bugs. Going through JBS, maybe only 1 or 2 bugs can be attributed to this flag over the last 4 years - and even for those, it could have very well be that the flag was not required because it was often accompanied by other stress flags such as `StressReflecitiveCode`.
> - We currently have a bug in Valhalla ([JDK-8331912](https://bugs.openjdk.org/browse/JDK-8331912)) which only happens with `ExpandSubTYpeCheckAtParseTime`. The reason is that we lose flatness information due to the eager sub type expansion. Later, data becomes top and the corresponding (already expanded) sub type check fails to fold control as well, leading to a broken graph. The simplest solution is to remove `ExpandSubTYpeCheckAtParseTime`.
> 
> Thanks,
> Christian

This pull request has now been integrated.

Changeset: 95c8a69b
Author:    Christian Hagedorn <chagedorn at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/95c8a69b0e7a99ec0cd41aa9b6ba033fd3216695
Stats:     18 lines in 4 files changed: 1 ins; 13 del; 4 mod

8332032: C2: Remove ExpandSubTypeCheckAtParseTime flag

Reviewed-by: thartmann, rcastanedalo

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

PR: https://git.openjdk.org/jdk/pull/19430


More information about the hotspot-compiler-dev mailing list