@@ -280,44 +280,55 @@ class ConcurrencySanitizerPass
280280 SmallVector<MemEffects> getMemEffects (Operation *op) {
281281 SmallVector<MemEffects> effects;
282282 if (auto copyOp = dyn_cast<ttng::AsyncTMACopyGlobalToLocalOp>(op)) {
283- effects.emplace_back (
284- MemEffects{.buf = copyOp.getResult (),
285- .rw = MemEffects::RW::Write,
286- .barriersAndPreds = {{copyOp.getBarrier (), nullptr }},
287- .pred = copyOp.getPred ()});
283+ MemEffects effect;
284+ effect.buf = copyOp.getResult ();
285+ effect.rw = MemEffects::RW::Write;
286+ effect.barriersAndPreds = {{copyOp.getBarrier (), nullptr }};
287+ effect.pred = copyOp.getPred ();
288+ effects.emplace_back (effect);
288289 }
289290 if (auto copyOp = dyn_cast<ttg::AsyncCopyGlobalToLocalOp>(op)) {
290- effects.emplace_back (MemEffects{.buf = copyOp.getResult (),
291- .rw = MemEffects::RW::Write,
292- .commitTracking = true });
291+ MemEffects effect;
292+ effect.buf = copyOp.getResult ();
293+ effect.rw = MemEffects::RW::Write;
294+ effect.commitTracking = true ;
295+ effects.emplace_back (effect);
293296 }
294297 if (auto loadOp = dyn_cast<ttng::TMEMLoadOp>(op)) {
295- effects.emplace_back (
296- MemEffects{.buf = loadOp.getSrc (), .rw = MemEffects::RW::Read});
298+ MemEffects effect;
299+ effect.buf = loadOp.getSrc ();
300+ effect.rw = MemEffects::RW::Read;
301+ effects.emplace_back (effect);
297302 }
298303 if (auto storeOp = dyn_cast<ttng::TMEMStoreOp>(op)) {
299- effects.emplace_back (
300- MemEffects{.buf = storeOp.getDst (), .rw = MemEffects::RW::Write});
304+ MemEffects effect;
305+ effect.buf = storeOp.getDst ();
306+ effect.rw = MemEffects::RW::Write;
307+ effects.emplace_back (effect);
301308 }
302309 if (auto mmav5Op = dyn_cast<ttng::TCGen5MMAOp>(op)) {
303310 SmallVector<std::tuple<Value, Value>> barriersAndPreds = llvm::to_vector (
304311 llvm::zip (mmav5Op.getBarriers (), mmav5Op.getBarrierPreds ()));
305312
306- effects.emplace_back (MemEffects{.buf = mmav5Op.getA (),
307- .rw = MemEffects::RW::Read,
308- .barriersAndPreds = barriersAndPreds,
309- .pred = mmav5Op.getPred ()});
310-
311- effects.emplace_back (MemEffects{.buf = mmav5Op.getB (),
312- .rw = MemEffects::RW::Read,
313- .barriersAndPreds = barriersAndPreds,
314- .pred = mmav5Op.getPred ()});
315-
316- effects.emplace_back (MemEffects{.buf = mmav5Op.getAccumulator (),
317- .rw = MemEffects::RW::Write,
318- .barriersAndPreds = barriersAndPreds,
319- .hwPipelined = true ,
320- .pred = mmav5Op.getPred ()});
313+ MemEffects effect;
314+ effect.buf = mmav5Op.getA ();
315+ effect.rw = MemEffects::RW::Read;
316+ effect.barriersAndPreds = barriersAndPreds;
317+ effect.pred = mmav5Op.getPred ();
318+ effects.emplace_back (effect);
319+
320+ effect.buf = mmav5Op.getB ();
321+ effect.rw = MemEffects::RW::Read;
322+ effect.barriersAndPreds = barriersAndPreds;
323+ effect.pred = mmav5Op.getPred ();
324+ effects.emplace_back (effect);
325+
326+ effect.buf = mmav5Op.getAccumulator ();
327+ effect.rw = MemEffects::RW::Write;
328+ effect.barriersAndPreds = barriersAndPreds;
329+ effect.hwPipelined = true ;
330+ effect.pred = mmav5Op.getPred ();
331+ effects.emplace_back (effect);
321332 }
322333 return effects;
323334 }
0 commit comments