diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 21:56:37 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 21:56:37 +0800 |
| commit | 0bb35fa2306a66f1f0baf118619b5c1640ed9c01 (patch) | |
| tree | 4333e77e9555295668b819c96890046d072eed5a /backend/lib/Target | |
| parent | f8daf08aba1f09c3024a70d3426891112d1662a2 (diff) | |
| download | rcc-project-0bb35fa2306a66f1f0baf118619b5c1640ed9c01.tar.gz rcc-project-0bb35fa2306a66f1f0baf118619b5c1640ed9c01.tar.xz | |
[GlobalISel] Split the generic pipeline components
Diffstat (limited to 'backend/lib/Target')
| -rw-r--r-- | backend/lib/Target/RISCV/RISCVCodeGen.cpp | 14 | ||||
| -rw-r--r-- | backend/lib/Target/RISCV/RISCVPipeline.cpp | 16 |
2 files changed, 16 insertions, 14 deletions
diff --git a/backend/lib/Target/RISCV/RISCVCodeGen.cpp b/backend/lib/Target/RISCV/RISCVCodeGen.cpp index 00dba94..b610d81 100644 --- a/backend/lib/Target/RISCV/RISCVCodeGen.cpp +++ b/backend/lib/Target/RISCV/RISCVCodeGen.cpp @@ -3250,7 +3250,7 @@ struct VACopyPlan final { return eraseInstruction(Instruction); } -class RISCVLegalizerInfo final : public TargetLegalizerInfo { +class RISCVLegalizerInfo final : public LegalizerInfo { public: explicit RISCVLegalizerInfo(RISCVSubtargetFeatures Features) : Features(Features) {} @@ -3985,7 +3985,7 @@ private: RISCVSubtargetFeatures Features; }; -class RISCVRegisterBankInfo final : public TargetRegisterBankInfo { +class RISCVRegisterBankInfo final : public RegisterBankInfo { public: [[nodiscard]] Expected<RegisterBankID> selectBank(const MachineFunction &, Register, const VirtualRegisterInfo &Info, @@ -4049,7 +4049,7 @@ public: } }; -class RISCVInstructionSelector final : public TargetInstructionSelector { +class RISCVInstructionSelector final : public InstructionSelector { public: [[nodiscard]] Expected<void> constrainSelectedInstruction(MachineInstr &Instruction, MachineFunction &Function, @@ -6514,21 +6514,21 @@ private: } // namespace -const TargetLegalizerInfo &legalizerInfo() noexcept { +const LegalizerInfo &legalizerInfo() noexcept { static const RISCVLegalizerInfo Value(RISCVSubtargetFeatures::rv64gc()); return Value; } -std::unique_ptr<TargetLegalizerInfo> createLegalizerInfo(RISCVSubtargetFeatures Features) { +std::unique_ptr<LegalizerInfo> createLegalizerInfo(RISCVSubtargetFeatures Features) { return std::make_unique<RISCVLegalizerInfo>(Features); } -const TargetRegisterBankInfo ®isterBankInfo() noexcept { +const RegisterBankInfo ®isterBankInfo() noexcept { static const RISCVRegisterBankInfo Value; return Value; } -const TargetInstructionSelector &instructionSelector() noexcept { +const InstructionSelector &instructionSelector() noexcept { static const RISCVInstructionSelector Value; return Value; } diff --git a/backend/lib/Target/RISCV/RISCVPipeline.cpp b/backend/lib/Target/RISCV/RISCVPipeline.cpp index 08a4653..7c778ea 100644 --- a/backend/lib/Target/RISCV/RISCVPipeline.cpp +++ b/backend/lib/Target/RISCV/RISCVPipeline.cpp @@ -3,10 +3,12 @@ #include "rcc/Target/RISCV/RISCVPipeline.h" #include "RISCVInstrInfo.h" +#include "rcc/CodeGen/GlobalISel/InstructionSelect.h" +#include "rcc/CodeGen/GlobalISel/Legalizer.h" +#include "rcc/CodeGen/GlobalISel/RegBankSelect.h" #include "rcc/CodeGen/MachineCombiner.h" #include "rcc/CodeGen/MachineFunction.h" #include "rcc/CodeGen/MachineOptimizationPipeline.h" -#include "rcc/CodeGen/MachinePipelinePasses.h" #include "rcc/CodeGen/MachineSSAExit.h" #include "rcc/CodeGen/RegAllocPBQP.h" #include "rcc/CodeGen/TargetDescription.h" @@ -33,13 +35,13 @@ template <typename PassT, typename... ArgumentT> MachineCombinerStage::PreLegalizer); if (!Added) return std::unexpected(Added.error()); - Added = addPass<LegalizerPass>(Pipeline, createLegalizerInfo(Features)); + Added = addPass<Legalizer>(Pipeline, createLegalizerInfo(Features)); if (!Added) return std::unexpected(Added.error()); - Added = addPass<RegisterBankSelectPass>(Pipeline, registerBankInfo()); + Added = addPass<RegBankSelect>(Pipeline, registerBankInfo()); if (!Added) return std::unexpected(Added.error()); - return addPass<InstructionSelectPass>(Pipeline, instructionSelector()); + return addPass<InstructionSelect>(Pipeline, instructionSelector()); } [[nodiscard]] Expected<void> addSSAExitPipeline(MachinePassManager &Pipeline) { @@ -86,17 +88,17 @@ Expected<void> addCanonicalPipeline(MachinePassManager &Pipeline, const MachineF MachineCombinerStage::PreLegalizer); if (!Added) return std::unexpected(Added.error()); - Added = addPass<LegalizerPass>(Pipeline, createLegalizerInfo(Features)); + Added = addPass<Legalizer>(Pipeline, createLegalizerInfo(Features)); if (!Added) return std::unexpected(Added.error()); } if (!Function.properties().has(MachineFunctionProperty::RegBankSelected)) { - auto Added = addPass<RegisterBankSelectPass>(Pipeline, registerBankInfo()); + auto Added = addPass<RegBankSelect>(Pipeline, registerBankInfo()); if (!Added) return std::unexpected(Added.error()); } if (!Function.properties().has(MachineFunctionProperty::Selected)) { - auto Added = addPass<InstructionSelectPass>(Pipeline, instructionSelector()); + auto Added = addPass<InstructionSelect>(Pipeline, instructionSelector()); if (!Added) return std::unexpected(Added.error()); } |
