diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-28 13:45:07 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-28 13:45:07 +0800 |
| commit | e72ad2cd524ff38f162a23d69da5f78494d337ae (patch) | |
| tree | 2e590806b0f610e4392f25f6e8cdff57d2f5a929 /backend/lib/CodeGen/MachineCSE.cpp | |
| parent | 3b14bd4d5324b5a280c1ee5567b5526b59e60c5b (diff) | |
| download | rcc-project-e72ad2cd524ff38f162a23d69da5f78494d337ae.tar.gz rcc-project-e72ad2cd524ff38f162a23d69da5f78494d337ae.tar.xz | |
[CodeGen] Centralize machine instruction erasure
Diffstat (limited to 'backend/lib/CodeGen/MachineCSE.cpp')
| -rw-r--r-- | backend/lib/CodeGen/MachineCSE.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/backend/lib/CodeGen/MachineCSE.cpp b/backend/lib/CodeGen/MachineCSE.cpp index 7bd5a22..353cbaa 100644 --- a/backend/lib/CodeGen/MachineCSE.cpp +++ b/backend/lib/CodeGen/MachineCSE.cpp @@ -258,15 +258,12 @@ replacementPairs(const MachineInstr &Available, const MachineInstr &Redundant, replaceAndErase(MachineInstr &Redundant, const std::vector<std::pair<Register, Register>> &Replacements, MachineRegisterInfo &Registers) { - MachineBasicBlock *Block = Redundant.parent(); - if (Block == nullptr) - return makeUnexpected(ErrorCode::InternalError, "machine CSE candidate is detached"); for (const auto &[OldReg, NewReg] : Replacements) { auto Replaced = Registers.replaceRegWith(OldReg, NewReg); if (!Replaced) return std::unexpected(Replaced.error()); } - auto Removed = Block->removeInstruction(Redundant); + auto Removed = Redundant.eraseFromParent(); if (!Removed) return std::unexpected(Removed.error()); for (const auto &[OldReg, NewReg] : Replacements) { |
