RFR: 8353345: C2 asserts because maskShiftAmount modifies node without deleting the hash
Marc Chevalier
mchevalier at openjdk.org
Wed Apr 2 08:31:19 UTC 2025
First delete the hash, then `set_req`. This way, we avoid changing the node (a non-`this` node) without deleting the hash. This wrong ordering is not new from [JDK-8347459](https://bugs.openjdk.org/browse/JDK-8347459), but before that, only `this` was going through this function, so it was ok. But since, it is used with other nodes, hence the need to remove the hash.
Also, not do any of that outside IGVN, but requires to register nested shifts for IGVN in parsing not to miss them later.
Thanks,
Marc
-------------
Commit messages:
- No collapse double shift left in IGVN + remove from hashtable before set_req
Changes: https://git.openjdk.org/jdk/pull/24355/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24355&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8353345
Stats: 62 lines in 2 files changed: 60 ins; 2 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/24355.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/24355/head:pull/24355
PR: https://git.openjdk.org/jdk/pull/24355
More information about the hotspot-compiler-dev
mailing list