aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/MachineCombiner.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-12 04:21:14 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-12 04:21:14 +0800
commit1775d50ba02dab033c639f5c8fedd46cb6613bef (patch)
treeb4ca387ff0015862cdf90a8652ad35402fa9af69 /backend/lib/CodeGen/MachineCombiner.cpp
parent64c0360a6646dd1d3f75b8d1ed11ec4da825256b (diff)
downloadrcc-project-1775d50ba02dab033c639f5c8fedd46cb6613bef.tar.gz
rcc-project-1775d50ba02dab033c639f5c8fedd46cb6613bef.tar.xz
[Tooling] Adopt LLVM MIR command-line spellings
Diffstat (limited to 'backend/lib/CodeGen/MachineCombiner.cpp')
-rw-r--r--backend/lib/CodeGen/MachineCombiner.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/backend/lib/CodeGen/MachineCombiner.cpp b/backend/lib/CodeGen/MachineCombiner.cpp
index 54915ab..9a87b6f 100644
--- a/backend/lib/CodeGen/MachineCombiner.cpp
+++ b/backend/lib/CodeGen/MachineCombiner.cpp
@@ -25,6 +25,20 @@ namespace rcc {
namespace {
[[nodiscard]] const MachinePassContract &combinerContract(MachineCombinerStage Stage) {
+ static const MachinePassContract PreLegalizer = [] {
+ MachinePassContract Value{
+ .Name = "riscv-prelegalizer-combiner",
+ .Requires = {MachineFunctionProperty::IsSSA},
+ .Sets = {},
+ .Clears = {},
+ .RequiredAnalyses = {},
+ .VerificationStage = PipelineStage::MachineIRInput,
+ };
+ Value.ThreadSafety = PassThreadSafety::ThreadSafe;
+ Value.DeclaredChanges = {MachinePassChange::Instructions, MachinePassChange::Operands,
+ MachinePassChange::Registers};
+ return Value;
+ }();
static const MachinePassContract SelectedSSA = [] {
MachinePassContract Value{
.Name = "machine-combiner-selected-ssa",
@@ -85,6 +99,8 @@ namespace {
return Value;
}();
switch (Stage) {
+ case MachineCombinerStage::PreLegalizer:
+ return PreLegalizer;
case MachineCombinerStage::SelectedSSA:
return SelectedSSA;
case MachineCombinerStage::PreRegisterAllocation:
@@ -94,7 +110,7 @@ namespace {
case MachineCombinerStage::PostFrame:
return PostFrame;
}
- return SelectedSSA;
+ return PreLegalizer;
}
[[nodiscard]] Error prefixedError(const Error &Failure, std::string Prefix) {