From e72ad2cd524ff38f162a23d69da5f78494d337ae Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Fri, 28 Aug 2026 13:45:07 +0800 Subject: [CodeGen] Centralize machine instruction erasure --- backend/include/rcc/CodeGen/GlobalISel/LegalizationArtifactCombiner.h | 2 +- backend/include/rcc/CodeGen/MachineInstr.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'backend/include/rcc/CodeGen') diff --git a/backend/include/rcc/CodeGen/GlobalISel/LegalizationArtifactCombiner.h b/backend/include/rcc/CodeGen/GlobalISel/LegalizationArtifactCombiner.h index c0c7be0..12225cf 100644 --- a/backend/include/rcc/CodeGen/GlobalISel/LegalizationArtifactCombiner.h +++ b/backend/include/rcc/CodeGen/GlobalISel/LegalizationArtifactCombiner.h @@ -351,7 +351,7 @@ private: for (MachineInstr *Dead : DeadInstructions) { if (Dead == nullptr || Dead->parent() == nullptr) continue; - auto Removed = Dead->parent()->removeInstruction(*Dead); + auto Removed = Dead->eraseFromParent(); if (!Removed) return std::unexpected(Removed.error()); } diff --git a/backend/include/rcc/CodeGen/MachineInstr.h b/backend/include/rcc/CodeGen/MachineInstr.h index 6de4a4e..441f80d 100644 --- a/backend/include/rcc/CodeGen/MachineInstr.h +++ b/backend/include/rcc/CodeGen/MachineInstr.h @@ -79,6 +79,8 @@ public: return ParentBlock != nullptr; } + [[nodiscard]] Expected eraseFromParent(); + [[nodiscard]] bool isDebugInstr() const noexcept; [[nodiscard]] std::size_t operandCount() const noexcept { -- cgit v1.2.3