aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-19 17:21:10 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-19 17:21:10 +0800
commit0dc24902b4d01b939160946098a8a3bb404b9d73 (patch)
tree861b5ad2e070f509d8fe23c7f5ac221ffff6b4af /backend
parentf7df62b40fd06585bb8c93d001f90e37d3aea3c2 (diff)
downloadrcc-project-0dc24902b4d01b939160946098a8a3bb404b9d73.tar.gz
rcc-project-0dc24902b4d01b939160946098a8a3bb404b9d73.tar.xz
[CodeGen] Remove unsupported post-frame combiner
Diffstat (limited to 'backend')
-rw-r--r--backend/include/rcc/CodeGen/MachineCombinerPattern.h1
-rw-r--r--backend/lib/CodeGen/MachineCombiner.cpp18
-rw-r--r--backend/lib/CodeGen/MachineOptimizationPipeline.cpp4
-rw-r--r--backend/lib/Target/RISCV/RISCVMachineCombiner.cpp3
4 files changed, 1 insertions, 25 deletions
diff --git a/backend/include/rcc/CodeGen/MachineCombinerPattern.h b/backend/include/rcc/CodeGen/MachineCombinerPattern.h
index 0701250..62819ef 100644
--- a/backend/include/rcc/CodeGen/MachineCombinerPattern.h
+++ b/backend/include/rcc/CodeGen/MachineCombinerPattern.h
@@ -20,7 +20,6 @@ enum class MachineCombinerStage : std::uint8_t {
SelectedSSA,
PreRegisterAllocation,
PostRegisterAllocation,
- PostFrame,
};
using MachineCombinerStageMask = std::uint8_t;
diff --git a/backend/lib/CodeGen/MachineCombiner.cpp b/backend/lib/CodeGen/MachineCombiner.cpp
index 90bedac..1075180 100644
--- a/backend/lib/CodeGen/MachineCombiner.cpp
+++ b/backend/lib/CodeGen/MachineCombiner.cpp
@@ -82,22 +82,6 @@ namespace {
MachinePassChange::Registers};
return Value;
}();
- static const MachinePassContract PostFrame = [] {
- MachinePassContract Value{
- .Name = "machine-combiner-post-frame",
- .Requires = {MachineFunctionProperty::Selected, MachineFunctionProperty::NoVRegs,
- MachineFunctionProperty::FrameFinalized,
- MachineFunctionProperty::NoFrameIndices},
- .Sets = {},
- .Clears = {},
- .RequiredAnalyses = {},
- .VerificationStage = PipelineStage::PostRAFinalized,
- };
- Value.ThreadSafety = PassThreadSafety::ThreadSafe;
- Value.DeclaredChanges = {MachinePassChange::Instructions, MachinePassChange::Operands,
- MachinePassChange::Registers};
- return Value;
- }();
switch (Stage) {
case MachineCombinerStage::PreLegalizer:
return PreLegalizer;
@@ -107,8 +91,6 @@ namespace {
return PreRA;
case MachineCombinerStage::PostRegisterAllocation:
return PostRA;
- case MachineCombinerStage::PostFrame:
- return PostFrame;
}
return PreLegalizer;
}
diff --git a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp
index 4d20f9a..f3ce86d 100644
--- a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp
+++ b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp
@@ -105,10 +105,6 @@ addPostRegisterAllocationPipeline(MachineFunctionPassManager &Pipeline,
Added = addPass<PrologueEpilogueInsertionPass>(Pipeline, TargetInfo.FrameLowering);
if (!Added)
return std::unexpected(Added.error());
- Added =
- addPass<MachineCombinerPass>(Pipeline, TargetInfo.Combiner, MachineCombinerStage::PostFrame);
- if (!Added)
- return std::unexpected(Added.error());
Added = addPass<MachineDCEPass>(Pipeline);
if (!Added)
return std::unexpected(Added.error());
diff --git a/backend/lib/Target/RISCV/RISCVMachineCombiner.cpp b/backend/lib/Target/RISCV/RISCVMachineCombiner.cpp
index 78c764c..ffc27b0 100644
--- a/backend/lib/Target/RISCV/RISCVMachineCombiner.cpp
+++ b/backend/lib/Target/RISCV/RISCVMachineCombiner.cpp
@@ -15,8 +15,7 @@ namespace {
[[nodiscard]] constexpr MachineCombinerStageMask allOptimizationStages() noexcept {
return machineCombinerStageMask(MachineCombinerStage::SelectedSSA) |
machineCombinerStageMask(MachineCombinerStage::PreRegisterAllocation) |
- machineCombinerStageMask(MachineCombinerStage::PostRegisterAllocation) |
- machineCombinerStageMask(MachineCombinerStage::PostFrame);
+ machineCombinerStageMask(MachineCombinerStage::PostRegisterAllocation);
}
[[nodiscard]] MachineCombinerPattern immediateIdentity(InstructionOpcode OpcodeValue,