RFR: 8353341: Fuzzer tests crashing: assert(projs->fallthrough_proj != nullptr) failed: must be found
Tobias Hartmann
thartmann at openjdk.org
Wed Apr 2 07:32:06 UTC 2025
On Wed, 2 Apr 2025 07:19:35 GMT, Marc Chevalier <mchevalier at openjdk.org> wrote:
> If the Mod[DF]Node has no control projection when it's being removed (because its result is unused), `extract_projections` will fail an assert. So, let's skip the removal.
>
> But that should happen only when the nodes are already unreachable (control input being transitively top). At the end of the day, the node should be dropped. because of that, so there is no rush, and let dead node deletion do the job.
>
> On the reduced reproducer, the crash is not common (even with `-XX:RepeatCompilation=300`, it might need more than a run to reproduce). So I've tried my fix on multiple thousands repeat compilations (by 300 packs) without a crash, and without having the modulo node alive at the end.
>
> Thanks,
> Marc
Looks good to me!
src/hotspot/share/opto/divnode.cpp line 1521:
> 1519:
> 1520: bool result_is_unused = proj_out_or_null(TypeFunc::Parms) == nullptr;
> 1521: bool has_control_output = proj_out_or_null(TypeFunc::Control) != nullptr;
Nit: Maybe replace this with `is_dead = proj_out_or_null(TypeFunc::Control) == nullptr;` and check for `!is_dead` below?
test/hotspot/jtreg/compiler/c2/irTests/FPModWithoutControlProj.java line 70:
> 68: }
> 69: }
> 70:
Suggestion:
test/hotspot/jtreg/compiler/c2/irTests/FPModWithoutControlProj.java line 93:
> 91: }
> 92: }
> 93:
Suggestion:
-------------
Marked as reviewed by thartmann (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/24375#pullrequestreview-2734903737
PR Review Comment: https://git.openjdk.org/jdk/pull/24375#discussion_r2024225945
PR Review Comment: https://git.openjdk.org/jdk/pull/24375#discussion_r2024228770
PR Review Comment: https://git.openjdk.org/jdk/pull/24375#discussion_r2024224053
More information about the hotspot-compiler-dev
mailing list