RFR: 8336726: C2: assert(!do_asserts || projs->fallthrough_ioproj != nullptr) failed: must be found
Tobias Hartmann
thartmann at openjdk.org
Fri Oct 11 07:56:50 UTC 2024
Post-parse call devirtualization asserts when calling `CallNode::extract_projections` on a virtual call that does not have the `fallthrough_ioproj` anymore. The projection was removed because the call is followed by an endless loop that does not have any IO uses.
Similar to incremental inlining, we should not assert that all call projections are still there for post-parse call devirtualization because parts of the graph might have been removed already:
https://github.com/openjdk/jdk/blob/580eb62dc097efeb51c76b095c1404106859b673/src/hotspot/share/opto/callnode.cpp#L963-L965
Thanks,
Tobias
-------------
Commit messages:
- Fix
- 8336726: C2: assert(\!do_asserts || projs->fallthrough_ioproj \!= nullptr) failed: must be found
Changes: https://git.openjdk.org/jdk/pull/21450/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21450&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8336726
Stats: 83 lines in 4 files changed: 77 ins; 0 del; 6 mod
Patch: https://git.openjdk.org/jdk/pull/21450.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21450/head:pull/21450
PR: https://git.openjdk.org/jdk/pull/21450
More information about the hotspot-compiler-dev
mailing list