RFR: 8322996: BoxLockNode creation fails with assert(reg < CHUNK_SIZE) failed: sanity

Daniel Lundén dlunden at openjdk.org
Thu Jan 11 10:23:36 UTC 2024


This changeset fixes an issue where deeply nested synchronized statements triggered an assert in C2.

Changes:
- Bail out on compilation when we create a `BoxLockNode` with a slot index that cannot fit in a `RegMask`. This is similar to how we handle the case when we do not have space to represent arguments in [`opto/matcher.cpp`](https://github.com/openjdk/jdk/blob/58b01dce054c50bcb5a28aad4c1b574acaa90f6d/src/hotspot/share/opto/matcher.cpp#L314-L318)
- Add a regression test.

Testing:
- [GitHub Actions](https://github.com/dlunde/jdk/actions/runs/7446998688)
- tier1, tier2, tier3, tier4, and tier5 on windows-x64, linux-x64, linux-aarch64, macosx-x64, and macosx-aarch64

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

Commit messages:
 - Fix issue and add test case

Changes: https://git.openjdk.org/jdk/pull/17370/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17370&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8322996
  Stats: 251 lines in 4 files changed: 248 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/17370.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17370/head:pull/17370

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


More information about the hotspot-compiler-dev mailing list