[jdk19] Integrated: 8287851: C2 crash: assert(t->meet(t0) == t) failed: Not monotonic
Jatin Bhateja
jbhateja at openjdk.org
Mon Jul 4 11:34:16 UTC 2022
On Sat, 2 Jul 2022 18:51:13 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> Hi All,
>
> Patch fixes the assertion failure seen during conditional constant propagation optimization on account of
> non-convergence, this happens when type values (lattice) associated with IR node seen during iterative data flow analysis are not-monotonic.
>
> Problem was occurring due to incorrect result value range estimation by Value routines associated with Compress/ExpandBits IR nodes, non-constant mask lattice can take any value between _lo and _hi values, special handling for +ve mask value range is using count_leading_zeros to estimate the maximum bit width needed to accommodate the result. Since count_leading_zeros
> accepts a long argument there by sign-extending integer argument, hence for integer case we need to subtract 32 from the results to get correct value.
>
> Patch also fixes a typo resulting into a dead code reported by [JDK-8287855](https://bugs.openjdk.org/browse/JDK-8287855): Problem in compress_expand_identity.
>
> Failing unit test java/lang/CompressExpandTest.java has been removed from ProblemList.txt.
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
This pull request has now been integrated.
Changeset: 1a271645
Author: Jatin Bhateja <jbhateja at openjdk.org>
URL: https://git.openjdk.org/jdk19/commit/1a271645a84ac4d7d6570e739d42c05cc328891d
Stats: 7 lines in 2 files changed: 4 ins; 2 del; 1 mod
8287851: C2 crash: assert(t->meet(t0) == t) failed: Not monotonic
Reviewed-by: thartmann, chagedorn
-------------
PR: https://git.openjdk.org/jdk19/pull/104
More information about the hotspot-compiler-dev
mailing list