RFR: 8336726: C2: assert(!do_asserts || projs->fallthrough_ioproj != nullptr) failed: must be found [v2]

Tobias Hartmann thartmann at openjdk.org
Mon Oct 14 05:30:23 UTC 2024


On Fri, 11 Oct 2024 14:23:48 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

>> 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
>
> Tobias Hartmann has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update test/hotspot/jtreg/compiler/c2/TestCallDevirtualizationWithInfiniteLoop.java
>   
>   Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>

Thanks for the reviews, Vladimir and Vladimir!

-------------

PR Comment: https://git.openjdk.org/jdk/pull/21450#issuecomment-2409974472


More information about the hotspot-compiler-dev mailing list