[lworld] RFR: 8266086: [lworld][lw3] C1 produces incorrect code when GlobalValueNumbering is used

Frederic Parain fparain at openjdk.java.net
Wed Apr 28 18:45:40 UTC 2021

Please review this fix in C1 GlobalValueNumbering.
The problem is that C1 doesn't track that a flattened field has been updated when it writes the individual values of this flattened field. The proposed fix is to record the enclosing flattened field with the StoreField node of each individual field, and use this information when the GlobalValueNumbering processes those nodes to kill the flattened field in the ValueMap.

Tested locally (Linux 64) with hotspot_valhalla (including new unit test) and jdk_valhalla test suites.

Thank you,



Commit messages:
 - Fix C1 GlobalValueNumbering for flattened fields

Changes: https://git.openjdk.java.net/valhalla/pull/395/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=395&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8266086
  Stats: 85 lines in 6 files changed: 80 ins; 0 del; 5 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/395.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/395/head:pull/395

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

More information about the valhalla-dev mailing list