[lworld] RFR: 8253592: [lworld] C2: Additional fixes for handling empty inline types

Tobias Hartmann thartmann at openjdk.java.net
Thu Sep 24 11:32:26 UTC 2020

While working on JDK-8253416, I found more issues with handling of empty inline types in C2:
- Compile::build_start_state assumes that all inline type arguments are scalarized if has_scalarized_args() is true but
  one of the arguments could be non-scalarized (for example, if it's an empty inline type).
- Loads/stores from/to inline type fields should be removed. Refactoring the related code also fixes an issue where alias
  analysis gets confused when looking at flattened fields of empty inline types.

Unrelated fixes:
- Handling of unexpected inline/non-inline klasses in _new/_defaultvalue.
- Missing @DontCompile statements in some tests


Commit messages:
 - 8253592: [lworld] C2: Additional fixes for handling empty inline types

Changes: https://git.openjdk.java.net/valhalla/pull/197/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=197&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8253592
  Stats: 206 lines in 10 files changed: 119 ins; 50 del; 37 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/197.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/197/head:pull/197

PR: https://git.openjdk.java.net/valhalla/pull/197

More information about the valhalla-dev mailing list