diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-24 16:18:45 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-24 16:18:45 +0800 |
| commit | 936ac5647f82def050e6654d44d24a88906f4d7a (patch) | |
| tree | 7ab0c695b51eb1c449c4390d18ca3d682ecd31ba /backend/lib/CodeGen/MachineOptimizationPipeline.cpp | |
| parent | 75f1223070749b0df3002226ebbb474c68c71f90 (diff) | |
| download | rcc-project-936ac5647f82def050e6654d44d24a88906f4d7a.tar.gz rcc-project-936ac5647f82def050e6654d44d24a88906f4d7a.tar.xz | |
[CodeGen] Implement RISC-V peephole branch optimization
Diffstat (limited to 'backend/lib/CodeGen/MachineOptimizationPipeline.cpp')
| -rw-r--r-- | backend/lib/CodeGen/MachineOptimizationPipeline.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp index adec384..2badb78 100644 --- a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp +++ b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp @@ -14,6 +14,7 @@ #include "rcc/CodeGen/MachineFinalization.h" #include "rcc/CodeGen/MachineLICM.h" #include "rcc/CodeGen/MachineMemoryFolding.h" +#include "rcc/CodeGen/MachinePeepholeOptimizer.h" #include "rcc/CodeGen/MachinePseudoExpansion.h" #include "rcc/CodeGen/MachineScheduler.h" #include "rcc/CodeGen/MachineShrinkWrapping.h" @@ -62,7 +63,13 @@ addSelectedSSAOptimizationPipeline(MachineFunctionPassManager &Pipeline, Added = addPass<MachineLICMPass>(Pipeline, MachineCodeMotionStage::SelectedSSA); if (!Added) return std::unexpected(Added.error()); - return addPass<MachineSinkPass>(Pipeline, MachineCodeMotionStage::SelectedSSA); + Added = addPass<MachineSinkPass>(Pipeline, MachineCodeMotionStage::SelectedSSA); + if (!Added) + return std::unexpected(Added.error()); + Added = addPass<MachinePeepholeOptimizerPass>(Pipeline, TargetInfo.InstrInfo); + if (!Added) + return std::unexpected(Added.error()); + return addPass<MachineDCEPass>(Pipeline); } Expected<void> addPreRegisterAllocationOptimizationPipeline( |
