From d67604397ffe01f4024f68e1349389f9915dc091 Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Tue, 23 Sep 2025 14:37:10 +0100 Subject: [PATCH] [MachineStripDebug] Remove debug instructions from inside bundles Some passes, like AMDGPU's SIInsertHardClauses, wrap sequences of instructions into bundles, and these bundles may end up with debug instructions in the middle. Assuming that this is allowed, this patch fixes MachineStripDebug to be able to remove these instructions from inside a bundle. --- llvm/lib/CodeGen/MachineStripDebug.cpp | 2 +- llvm/test/CodeGen/AMDGPU/hard-clauses.mir | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/llvm/lib/CodeGen/MachineStripDebug.cpp b/llvm/lib/CodeGen/MachineStripDebug.cpp index ea291f64bff43..d54fe023a4a7e 100644 --- a/llvm/lib/CodeGen/MachineStripDebug.cpp +++ b/llvm/lib/CodeGen/MachineStripDebug.cpp @@ -58,7 +58,7 @@ struct StripDebugMachineModule : public ModulePass { // preservation. Preserve it for now. if (MI.getNumOperands() > 1) { LLVM_DEBUG(dbgs() << "Removing debug instruction " << MI); - MBB.erase(&MI); + MBB.erase_instr(&MI); Changed |= true; continue; } diff --git a/llvm/test/CodeGen/AMDGPU/hard-clauses.mir b/llvm/test/CodeGen/AMDGPU/hard-clauses.mir index 1341a5916df4b..ff8ca8688bb85 100644 --- a/llvm/test/CodeGen/AMDGPU/hard-clauses.mir +++ b/llvm/test/CodeGen/AMDGPU/hard-clauses.mir @@ -2,6 +2,7 @@ # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass si-insert-hard-clauses %s -o - | FileCheck %s # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass si-insert-hard-clauses %s -o - | FileCheck %s -check-prefix=GFX11 # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-insert-hard-clauses %s -o - | FileCheck %s -check-prefix=GFX12 +# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-insert-hard-clauses %s -o - -debugify-and-strip-all-safe | FileCheck %s -check-prefix=GFX12 --- name: nop1