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