From e8555cfd193c8de5a3de29275148731b29f6e176 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Wed, 19 Aug 2026 17:50:30 +0800 Subject: [CodeGen] Unify LLVM branch folding pipeline --- .../lib/CodeGen/MachineOptimizationPipeline.cpp | 28 ++++++++++------------ 1 file changed, 12 insertions(+), 16 deletions(-) (limited to 'backend/lib/CodeGen/MachineOptimizationPipeline.cpp') diff --git a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp index 817b2ca..7634ecd 100644 --- a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp +++ b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp @@ -21,7 +21,6 @@ #include "rcc/CodeGen/MachineSink.h" #include "rcc/CodeGen/MachineStackSlotColoring.h" #include "rcc/CodeGen/MachineTailDuplication.h" -#include "rcc/CodeGen/MachineTailMerge.h" #include "rcc/CodeGen/PostRAScheduler.h" #include "rcc/CodeGen/PrologueEpilogueInsertion.h" @@ -69,11 +68,8 @@ addSelectedSSAOptimizationPipeline(MachineFunctionPassManager &Pipeline, Expected addPreRegisterAllocationOptimizationPipeline( MachineFunctionPassManager &Pipeline, const MachineOptimizationPipelineTargetInfo &TargetInfo) { - auto Added = addPass(Pipeline, TargetInfo.InstrInfo); - if (!Added) - return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.Combiner, - MachineCombinerStage::PreRegisterAllocation); + auto Added = addPass(Pipeline, TargetInfo.Combiner, + MachineCombinerStage::PreRegisterAllocation); if (!Added) return std::unexpected(Added.error()); return addPass(Pipeline, TargetInfo.SchedulingModel); @@ -102,28 +98,28 @@ addPostRegisterAllocationPipeline(MachineFunctionPassManager &Pipeline, Added = addPass(Pipeline, TargetInfo.FrameLowering); if (!Added) return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.PseudoExpansion); + Added = addPass(Pipeline, TargetInfo.InstrInfo); if (!Added) return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.SchedulingModel); + Added = addPass(Pipeline, TargetInfo.InstrInfo); if (!Added) return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.InstrInfo); + Added = addPass( + Pipeline, TargetInfo.InstrInfo, + MachineCopyPropagationOptions{.UseTargetCopyInstructions = + Options.UseTargetCopyInstructions}); if (!Added) return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.InstrInfo); + Added = addPass(Pipeline, TargetInfo.PseudoExpansion); if (!Added) return std::unexpected(Added.error()); - Added = addPass(Pipeline); + Added = addPass(Pipeline, TargetInfo.SchedulingModel); if (!Added) return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.InstrInfo); + Added = addPass(Pipeline); if (!Added) return std::unexpected(Added.error()); - Added = addPass( - Pipeline, TargetInfo.InstrInfo, - MachineCopyPropagationOptions{.UseTargetCopyInstructions = - Options.UseTargetCopyInstructions}); + Added = addPass(Pipeline, TargetInfo.InstrInfo); if (!Added) return std::unexpected(Added.error()); Added = addPass(Pipeline, TargetInfo.InstrInfo); -- cgit v1.2.3