@@ -280,44 +280,55 @@ class ConcurrencySanitizerPass
280
280
SmallVector<MemEffects> getMemEffects (Operation *op) {
281
281
SmallVector<MemEffects> effects;
282
282
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);
288
289
}
289
290
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);
293
296
}
294
297
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);
297
302
}
298
303
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);
301
308
}
302
309
if (auto mmav5Op = dyn_cast<ttng::TCGen5MMAOp>(op)) {
303
310
SmallVector<std::tuple<Value, Value>> barriersAndPreds = llvm::to_vector (
304
311
llvm::zip (mmav5Op.getBarriers (), mmav5Op.getBarrierPreds ()));
305
312
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);
321
332
}
322
333
return effects;
323
334
}
0 commit comments