From 7f71a1040d9c03f72d082e329ccaf2c4a3c060a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20=C3=96sterlund?= Date: Tue, 14 Feb 2023 09:18:48 +0000 Subject: [PATCH] 8301874: BarrierSetC2 should assign barrier data to stores Reviewed-by: rcastanedalo, kvn --- src/hotspot/share/gc/shared/c2/barrierSetC2.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp b/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp index 75dfca7c817..90fae8c3588 100644 --- a/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp +++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp @@ -99,7 +99,8 @@ Node* BarrierSetC2::store_at_resolved(C2Access& access, C2AccessValue& val) cons } store = kit->store_to_memory(kit->control(), access.addr().node(), val.node(), bt, - access.addr().type(), mo, requires_atomic_access, unaligned, mismatched, unsafe); + access.addr().type(), mo, requires_atomic_access, unaligned, + mismatched, unsafe, access.barrier_data()); } else { assert(access.is_opt_access(), "either parse or opt access"); C2OptAccess& opt_access = static_cast(access); @@ -117,6 +118,7 @@ Node* BarrierSetC2::store_at_resolved(C2Access& access, C2AccessValue& val) cons if (mismatched) { st->set_mismatched_access(); } + st->set_barrier_data(access.barrier_data()); store = gvn.transform(st); if (store == st) { mm->set_memory_at(alias, st);