RFR: 8285301: C2: assert(!requires_atomic_access) failed: can't ensure atomicity [v2]
Tobias Hartmann
thartmann at openjdk.java.net
Thu Apr 28 05:34:31 UTC 2022
> We hit asserts in `BarrierSetC2::load_at_resolved` and `BarrierSetC2::store_at_resolved` when running with `-XX:+AlwaysAtomicAccesses` because the corresponding code paths have not been implemented yet. Although the assert triggers on all platforms, it only affects long and double accesses on 32-bit systems (everything else is atomic anyway).
>
> I moved the `requires_atomic_access` logic into `LoadNode::make` and `StoreNode::make` and refactored related code.
>
> I noticed that `LoadNode::convert_to_reinterpret_load` and `StoreNode::convert_to_reinterpret_store` did not properly check for `requires_atomic_access` and fixed that as well.
>
> I'm currently running all tests with `-XX:+AlwaysAtomicAccesses`.
>
> Thanks,
> Tobias
Tobias Hartmann has updated the pull request incrementally with two additional commits since the last revision:
- Removed default arg
- Invoking Opcode only once. Added comment to test
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/8422/files
- new: https://git.openjdk.java.net/jdk/pull/8422/files/3785374e..07926a58
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8422&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8422&range=00-01
Stats: 18 lines in 5 files changed: 4 ins; 0 del; 14 mod
Patch: https://git.openjdk.java.net/jdk/pull/8422.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/8422/head:pull/8422
PR: https://git.openjdk.java.net/jdk/pull/8422
More information about the hotspot-dev
mailing list