RFR: 8374435: "assert(addp->is_AddP()) failed: must be AddP" failed intermittently when running tools/jpackage/share/AsyncTest.java with ZGC
Quan Anh Mai
qamai at openjdk.org
Mon Jan 12 19:42:19 UTC 2026
Hi,
This PR fixes the assert in `ConnectionGraph::get_addp_base` during escape analysis. The issue here is that, after splitting a `Load` through a `Phi`, we try to adjust the `ConnectionGraph` as the split creates new nodes. As we visit each input of `data_phi`, we fail to take into consideration the possibility that the input can be folded to a `Load` but not from an `AddP`. This is the case for `Object::getClass`, as we load the `OopHandle` from the `Klass` object, then load the class mirror from that `OopHandle`.
Since we are loading from raw memory, the base is not a scalar replaceable Java object. Similar to the case below, we are done processing this input.
Please take a look and leave your reviews, thanks a lot.
-------------
Commit messages:
- Fix comment
- Fix assert addp->is_AddP() during EA
Changes: https://git.openjdk.org/jdk/pull/29177/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29177&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8374435
Stats: 92 lines in 2 files changed: 91 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/29177.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/29177/head:pull/29177
PR: https://git.openjdk.org/jdk/pull/29177
More information about the hotspot-compiler-dev
mailing list