RFR: JDK-8330565 : C2: Multiple crashes with CTW after JDK-8316991
Vladimir Kozlov
kvn at openjdk.org
Thu May 9 01:28:51 UTC 2024
On Wed, 8 May 2024 23:44:23 GMT, Cesar Soares Lucas <cslucas at openjdk.org> wrote:
> The `# assert(false) failed: Bad graph detected in build_loop_late` failure was caused because a string concatenation optimization using [this method](https://github.com/openjdk/jdk/blob/819f3d6fc70ff6fe54ac5f9033c17c3dd4326aa5/src/hotspot/share/opto/graphKit.cpp#L4115) adds AddP and LoadN nodes to IR graph as NotNull _and_ because RAM was not "nullyfing" phis merging nullable pointers. I was only able to reproduce this problem using a classfile/jar compiled using an "old" version of JDK.. because newer version use InvokeDynamic to do string concatenation.
>
> Tested with JTREG tier1-4 on Linux x86_64 & ARM64.
src/hotspot/share/opto/escape.cpp line 779:
> 777: _igvn->set_type(data_phi, new_t);
> 778: data_phi->raise_bottom_type(new_t);
> 779: }
Do you intentionally execute `_igvn->transform(` for `data_phi` before you set inputs and now type?
Usually we do transform after we fully construct node.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19147#discussion_r1594859343
More information about the hotspot-compiler-dev
mailing list