diff --git a/lib/Dialect/TritonInstrument/Transforms/ConcurrencySanitizer.cpp b/lib/Dialect/TritonInstrument/Transforms/ConcurrencySanitizer.cpp index 60d865b209..9f086b6163 100644 --- a/lib/Dialect/TritonInstrument/Transforms/ConcurrencySanitizer.cpp +++ b/lib/Dialect/TritonInstrument/Transforms/ConcurrencySanitizer.cpp @@ -280,44 +280,55 @@ class ConcurrencySanitizerPass SmallVector getMemEffects(Operation *op) { SmallVector effects; if (auto copyOp = dyn_cast(op)) { - effects.emplace_back( - MemEffects{.buf = copyOp.getResult(), - .rw = MemEffects::RW::Write, - .barriersAndPreds = {{copyOp.getBarrier(), nullptr}}, - .pred = copyOp.getPred()}); + MemEffects effect; + effect.buf = copyOp.getResult(); + effect.rw = MemEffects::RW::Write; + effect.barriersAndPreds = {{copyOp.getBarrier(), nullptr}}; + effect.pred = copyOp.getPred(); + effects.emplace_back(effect); } if (auto copyOp = dyn_cast(op)) { - effects.emplace_back(MemEffects{.buf = copyOp.getResult(), - .rw = MemEffects::RW::Write, - .commitTracking = true}); + MemEffects effect; + effect.buf = copyOp.getResult(); + effect.rw = MemEffects::RW::Write; + effect.commitTracking = true; + effects.emplace_back(effect); } if (auto loadOp = dyn_cast(op)) { - effects.emplace_back( - MemEffects{.buf = loadOp.getSrc(), .rw = MemEffects::RW::Read}); + MemEffects effect; + effect.buf = loadOp.getSrc(); + effect.rw = MemEffects::RW::Read; + effects.emplace_back(effect); } if (auto storeOp = dyn_cast(op)) { - effects.emplace_back( - MemEffects{.buf = storeOp.getDst(), .rw = MemEffects::RW::Write}); + MemEffects effect; + effect.buf = storeOp.getDst(); + effect.rw = MemEffects::RW::Write; + effects.emplace_back(effect); } if (auto mmav5Op = dyn_cast(op)) { SmallVector> barriersAndPreds = llvm::to_vector( llvm::zip(mmav5Op.getBarriers(), mmav5Op.getBarrierPreds())); - effects.emplace_back(MemEffects{.buf = mmav5Op.getA(), - .rw = MemEffects::RW::Read, - .barriersAndPreds = barriersAndPreds, - .pred = mmav5Op.getPred()}); - - effects.emplace_back(MemEffects{.buf = mmav5Op.getB(), - .rw = MemEffects::RW::Read, - .barriersAndPreds = barriersAndPreds, - .pred = mmav5Op.getPred()}); - - effects.emplace_back(MemEffects{.buf = mmav5Op.getAccumulator(), - .rw = MemEffects::RW::Write, - .barriersAndPreds = barriersAndPreds, - .hwPipelined = true, - .pred = mmav5Op.getPred()}); + MemEffects effect; + effect.buf = mmav5Op.getA(); + effect.rw = MemEffects::RW::Read; + effect.barriersAndPreds = barriersAndPreds; + effect.pred = mmav5Op.getPred(); + effects.emplace_back(effect); + + effect.buf = mmav5Op.getB(); + effect.rw = MemEffects::RW::Read; + effect.barriersAndPreds = barriersAndPreds; + effect.pred = mmav5Op.getPred(); + effects.emplace_back(effect); + + effect.buf = mmav5Op.getAccumulator(); + effect.rw = MemEffects::RW::Write; + effect.barriersAndPreds = barriersAndPreds; + effect.hwPipelined = true; + effect.pred = mmav5Op.getPred(); + effects.emplace_back(effect); } return effects; }