aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/MachineCombiner.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-28 13:45:07 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-28 13:45:07 +0800
commite72ad2cd524ff38f162a23d69da5f78494d337ae (patch)
tree2e590806b0f610e4392f25f6e8cdff57d2f5a929 /backend/lib/CodeGen/MachineCombiner.cpp
parent3b14bd4d5324b5a280c1ee5567b5526b59e60c5b (diff)
downloadrcc-project-e72ad2cd524ff38f162a23d69da5f78494d337ae.tar.gz
rcc-project-e72ad2cd524ff38f162a23d69da5f78494d337ae.tar.xz
[CodeGen] Centralize machine instruction erasure
Diffstat (limited to 'backend/lib/CodeGen/MachineCombiner.cpp')
-rw-r--r--backend/lib/CodeGen/MachineCombiner.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/backend/lib/CodeGen/MachineCombiner.cpp b/backend/lib/CodeGen/MachineCombiner.cpp
index 4c2ff88..4341700 100644
--- a/backend/lib/CodeGen/MachineCombiner.cpp
+++ b/backend/lib/CodeGen/MachineCombiner.cpp
@@ -175,18 +175,11 @@ namespace {
if (!Fused)
return std::unexpected(Fused.error());
- MachineBasicBlock *Block = Root.parent();
- if (Block == nullptr)
- return makeUnexpected(ErrorCode::InternalError, "machine combiner root is detached");
- auto Removed = Block->removeInstruction(Root);
+ auto Removed = Root.eraseFromParent();
if (!Removed)
return std::unexpected(Removed.error());
if (EraseProducer) {
- MachineBasicBlock *ProducerBlock = Producer.parent();
- if (ProducerBlock == nullptr) {
- return makeUnexpected(ErrorCode::InternalError, "machine combiner producer is detached");
- }
- Removed = ProducerBlock->removeInstruction(Producer);
+ Removed = Producer.eraseFromParent();
if (!Removed)
return std::unexpected(Removed.error());
}