================
@@ -1107,13 +1153,31 @@ void WaitcntBrackets::updateByEvent(WaitEventType E, 
MachineInstr &Inst) {
         setVMemScore(LDSDMA_BEGIN + Slot, T, CurrScore);
     }
 
+    if (Context->isAsyncLdsDmaWrite(Inst) && T == LOAD_CNT) {
+      // FIXME: Not supported on GFX12 yet. Will need a new feature when we do.
+      assert(!SIInstrInfo::usesASYNC_CNT(Inst));
+      AsyncScore[T] = CurrScore;
+    }
+
     if (SIInstrInfo::isSBarrierSCCWrite(Inst.getOpcode())) {
       setRegScore(AMDGPU::SCC, T, CurrScore);
       PendingSCCWrite = &Inst;
     }
   }
 }
 
+void WaitcntBrackets::recordAsyncMark(MachineInstr &Inst) {
+  AsyncMarkers.emplace_back(AsyncScore);
----------------
ssahasra wrote:

Wow, that sent me down a minor rabbit-hole:
https://stackoverflow.com/questions/10890653/why-would-i-ever-use-push-back-instead-of-emplace-back
https://abseil.io/tips/112

So the conclusion seems to be that always prefer `push_back()`, unless you are 
absolutely sure that the performance gain from `emplace_back()` is noticeable 
and you know what you are doing?

https://github.com/llvm/llvm-project/pull/173259
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to