RFR: 8359344: C2: Malformed control flow after intrinsic bailout [v2]

Tobias Hartmann thartmann at openjdk.org
Tue Jul 8 15:13:40 UTC 2025


On Tue, 8 Jul 2025 13:35:27 GMT, Marc Chevalier <mchevalier at openjdk.org> wrote:

>> src/hotspot/share/opto/library_call.cpp line 2393:
>> 
>>> 2391:     Node* out = control()->fast_out(i);
>>> 2392:     if (out->is_CFG() && out->in(0) == control() && out != map() && !state.ctrl_succ.member(out)) {
>>> 2393:       out->set_req(0, C->top());
>> 
>> Could `out` already be in the GVN hash ("remove node from hash table before modifying it")?
>
> I've added it, since indeed, it could. As far as I understand, I was just lucky in the situation where it happens, but there is no reason it would always hold.

I think you also need to re-insert it via `hash_find_insert`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25936#discussion_r2192795199


More information about the graal-dev mailing list