diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 04:21:14 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 04:21:14 +0800 |
| commit | 1775d50ba02dab033c639f5c8fedd46cb6613bef (patch) | |
| tree | b4ca387ff0015862cdf90a8652ad35402fa9af69 /backend/lib/CodeGen | |
| parent | 64c0360a6646dd1d3f75b8d1ed11ec4da825256b (diff) | |
| download | rcc-project-1775d50ba02dab033c639f5c8fedd46cb6613bef.tar.gz rcc-project-1775d50ba02dab033c639f5c8fedd46cb6613bef.tar.xz | |
[Tooling] Adopt LLVM MIR command-line spellings
Diffstat (limited to 'backend/lib/CodeGen')
| -rw-r--r-- | backend/lib/CodeGen/MachineCombiner.cpp | 18 | ||||
| -rw-r--r-- | backend/lib/CodeGen/MachinePipelinePasses.cpp | 18 |
2 files changed, 25 insertions, 11 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) { diff --git a/backend/lib/CodeGen/MachinePipelinePasses.cpp b/backend/lib/CodeGen/MachinePipelinePasses.cpp index 9bde291..3dae07e 100644 --- a/backend/lib/CodeGen/MachinePipelinePasses.cpp +++ b/backend/lib/CodeGen/MachinePipelinePasses.cpp @@ -24,7 +24,7 @@ namespace { [[nodiscard]] const MachinePassContract &legalizerContract() { static const MachinePassContract Contract{ - .Name = "Legalizer", + .Name = "legalizer", // LLVM's GlobalISel legalizer operates on SSA form and does not require // the optional register-liveness tracking property. .Requires = {MachineFunctionProperty::IsSSA}, @@ -38,7 +38,7 @@ namespace { [[nodiscard]] const MachinePassContract &bankSelectContract() { static const MachinePassContract Contract{ - .Name = "RegisterBankSelect", + .Name = "regbankselect", .Requires = {MachineFunctionProperty::Legalized}, .Sets = {MachineFunctionProperty::RegBankSelected}, .Clears = {}, @@ -50,7 +50,7 @@ namespace { [[nodiscard]] const MachinePassContract &instructionSelectContract() { static const MachinePassContract Contract{ - .Name = "InstructionSelect", + .Name = "instruction-select", .Requires = {MachineFunctionProperty::Legalized, MachineFunctionProperty::RegBankSelected}, .Sets = {MachineFunctionProperty::Selected}, .Clears = {}, @@ -281,8 +281,7 @@ registerConfigurationFingerprint(const MachineRegisterInfo &RegInfo) noexcept { [[nodiscard]] Expected<void> clearTrackedLivenessFlags(MachineFunction &Function, MachinePassResult &Result) { - if (!Result.Changed || - !Function.properties().has(MachineFunctionProperty::TracksLiveness)) + if (!Result.Changed || !Function.properties().has(MachineFunctionProperty::TracksLiveness)) return {}; bool Changed = false; for (MachineInstr *Instruction : layoutInstructions(Function)) { @@ -291,8 +290,7 @@ registerConfigurationFingerprint(const MachineRegisterInfo &RegInfo) noexcept { if (!Operand.isRegister()) continue; RegisterOperandFlags Flags = Operand.registerFlags(); - if (!Flags.has(RegisterOperandFlag::Kill) && - !Flags.has(RegisterOperandFlag::Dead)) + if (!Flags.has(RegisterOperandFlag::Kill) && !Flags.has(RegisterOperandFlag::Dead)) continue; Flags.clear(RegisterOperandFlag::Kill); Flags.clear(RegisterOperandFlag::Dead); @@ -413,9 +411,9 @@ Expected<MachinePassResult> LegalizerPass::runImplementation(MachineFunction &Fu if (!InstructionWasErased) { const OpcodeState After = stateOf(*Instruction); if (After == Before) - return std::unexpected(passFailure( - "target legalizer made no observable progress for '" + Descriptor->Name + "'", - ErrorCode::InternalError)); + return std::unexpected(passFailure("target legalizer made no observable progress for '" + + Descriptor->Name + "'", + ErrorCode::InternalError)); } Result.Changed = true; Result.Changes.add(MachinePassChange::Instructions); |
