From 9e89d1d718977749ca798b27b7ad45e1781602c2 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Tue, 25 Aug 2026 01:43:04 +0800 Subject: [RISCV] Implement Zcmp move merging --- backend/lib/Target/RISCV/RISCVPipeline.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'backend/lib/Target/RISCV/RISCVPipeline.cpp') diff --git a/backend/lib/Target/RISCV/RISCVPipeline.cpp b/backend/lib/Target/RISCV/RISCVPipeline.cpp index e094591..5ad7da9 100644 --- a/backend/lib/Target/RISCV/RISCVPipeline.cpp +++ b/backend/lib/Target/RISCV/RISCVPipeline.cpp @@ -104,6 +104,9 @@ template Options.DebugPrologueEpilogue), MachineOptimizationPipelineOptions{.UseTargetCopyInstructions = Options.UseTargetCopyInstructions}); + if (!Added) + return std::unexpected(Added.error()); + Added = Pipeline.addPass(createMoveMergePass(Subtarget)); if (!Added) return std::unexpected(Added.error()); return addPass(Pipeline, Subtarget.frameLowering()); @@ -166,6 +169,8 @@ Expected addCanonicalPipeline(MachineFunctionPassManager &Pipeline, if (!Added) return std::unexpected(Added.error()); } + if (Subtarget.features().has(RISCVExtension::Zcmp)) + return Pipeline.addPass(createMoveMergePass(Subtarget)); return {}; } -- cgit v1.2.3