RFR: 8294609: C2: Improve inlining of methods with unloaded signature classes
Vladimir Ivanov
vlivanov at openjdk.org
Thu Sep 29 18:51:40 UTC 2022
C2 bails out an inlining attempt when the callee method mentions an unloaded
class in its signature (either as an argument or return type).
The current check is too strict (and caused problems in the past [1]) since it
doesn't take into account whether the problematic class is loaded in the caller
context. It's safe to relax the original check in such a way because class
loader constratints ensure that both caller and callee agree on the signature
classes.
(I believe the aforementioned check [2] is redundant and can be removed even when
the class is not yet loaded, but I'll explore it separately.)
Testing: hs-tier1 - hs-tier4
[1] https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2020-June/038604.html
[2] https://github.com/openjdk/jdk/blob/5f6ad926d7ea763bf61aa98c7be7087a7aa6089c/src/hotspot/share/opto/bytecodeInfo.cpp#L226
-------------
Commit messages:
- 8294609: C2: Improve inlining of methods with unloaded signature classes
Changes: https://git.openjdk.org/jdk/pull/10496/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10496&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8294609
Stats: 263 lines in 4 files changed: 237 ins; 23 del; 3 mod
Patch: https://git.openjdk.org/jdk/pull/10496.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10496/head:pull/10496
PR: https://git.openjdk.org/jdk/pull/10496
More information about the hotspot-compiler-dev
mailing list