RFR: 8331736: C2: Live Node limit exceeded limit after JDK-8316991

Cesar Soares Lucas cslucas at openjdk.org
Tue Jun 4 19:11:20 UTC 2024


Please, consider this patch to interrupt execution of `split_unique_types` (SUT) when number of live nodes reaches 3/4 of `max_live_nodes`.

The included test case reproduces the problem. The number of live nodes before running phase 3 of SUT is ~20k, after processing about 750 mergemem nodes the number of live nodes is over 70k. This problem was first encountered when running an old `.jar` file that was created before `invokedynamic` optimizations - that's why I disable string optimizations in the test case. The test case is strongly based on [the method that was originally triggering the problem](https://github.com/Unidata/netcdf-java/blob/c782ef80ab54a09befd6d5065c6baeed54949222/cdm/radial/src/main/java/ucar/nc2/iosp/nids/Nidsheader.java#L2174).

Tested on Linux, Win, Mac x86_64 tier1-3 and GHA.

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

Commit messages:
 - Throttle split unique types if number of live nodes is too big.

Changes: https://git.openjdk.org/jdk/pull/19545/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19545&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8331736
  Stats: 180 lines in 2 files changed: 180 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/19545.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19545/head:pull/19545

PR: https://git.openjdk.org/jdk/pull/19545


More information about the hotspot-compiler-dev mailing list