[PATCH] D134641: [AMDGPU][Backend] Fix user-after-free in AMDGPUReleaseVGPRs::isLastVGPRUseVMEMStore

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 28 09:25:09 PDT 2022


arsenm added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUReleaseVGPRs.cpp:70
+      BlockVMEMStore.resize(MF.getNumBlockIDs());
+      for (auto &MBB : MF) {
+        BlockVMEMStore[MBB.getNumber()] = lastBlockVGPRUseIsVMEMStore(MBB);
----------------
I'd expect this to be the post_order loop


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUReleaseVGPRs.cpp:76
+      for (auto *MBB : reverse(PostOrder)) {
+        auto LastUseIsVMEMStore = BlockVMEMStore[MBB->getNumber()];
+        LastUseIsVMEMStore = LastUseIsVMEMStore ||
----------------
Just use bool?


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUReleaseVGPRs.cpp:77
+        auto LastUseIsVMEMStore = BlockVMEMStore[MBB->getNumber()];
+        LastUseIsVMEMStore = LastUseIsVMEMStore ||
+                             any_of(MBB->predecessors(),
----------------
This looks like a dead variable?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134641/new/

https://reviews.llvm.org/D134641



More information about the llvm-commits mailing list