[lworld] RFR: 8252299: [lworld] C2 compilation fails with assert(!use_ReduceInitialCardMarks()) failed: can only happen with card marking

Tobias Hartmann thartmann at openjdk.java.net
Tue Aug 25 15:26:23 UTC 2020


When replacing an inline type buffer allocation by a dominating allocation, we are removing stores and re-link all
users of the dominated allocation to the dominating one (see InlineTypeNode::replace_allocation). Now we forgot to also
remove GC barriers for initializing stores to the dominated allocation, which causes several issues because these are
then re-linked to the dominated allocation as well while the corresponding stores were removed. The fix is to simply
remove these barriers as well via BarrierSet::eliminate_gc_barrier.

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

Commit messages:
 - 8252299: [lworld] C2 compilation fails with assert(\!use_ReduceInitialCardMarks()) failed: can only happen with card marking

Changes: https://git.openjdk.java.net/valhalla/pull/166/files
 Webrev: https://webrevs.openjdk.java.net/valhalla/166/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8252299
  Stats: 45 lines in 11 files changed: 15 ins; 0 del; 30 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/166.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/166/head:pull/166

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


More information about the valhalla-dev mailing list