aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Target/RISCV/RISCVPipeline.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-26 00:34:09 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-26 00:34:09 +0800
commit73ff142aa16a29c18d09564f0b7e41940fcf786c (patch)
treea96b6c932a1ceb23f79641d0e1c37c5bc2f18fe9 /backend/lib/Target/RISCV/RISCVPipeline.cpp
parentf5d9ddc085055d28d6f9fb3730c3566097f43fb2 (diff)
downloadrcc-project-73ff142aa16a29c18d09564f0b7e41940fcf786c.tar.gz
rcc-project-73ff142aa16a29c18d09564f0b7e41940fcf786c.tar.xz
[RISCV] Optimize W instructions
Diffstat (limited to 'backend/lib/Target/RISCV/RISCVPipeline.cpp')
-rw-r--r--backend/lib/Target/RISCV/RISCVPipeline.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/backend/lib/Target/RISCV/RISCVPipeline.cpp b/backend/lib/Target/RISCV/RISCVPipeline.cpp
index 1e18661..adcf22c 100644
--- a/backend/lib/Target/RISCV/RISCVPipeline.cpp
+++ b/backend/lib/Target/RISCV/RISCVPipeline.cpp
@@ -68,6 +68,9 @@ template <typename PassT, typename... ArgumentT>
Options.DebugPrologueEpilogue));
if (!Added)
return std::unexpected(Added.error());
+ Added = Pipeline.addPass(createOptWInstrsPass(Subtarget));
+ if (!Added)
+ return std::unexpected(Added.error());
Added = addPass<PHIEliminationPass>(Pipeline, instrInfo());
if (!Added)
return std::unexpected(Added.error());
@@ -157,6 +160,9 @@ Expected<void> addCanonicalPipeline(MachineFunctionPassManager &Pipeline,
Options.DebugPrologueEpilogue));
if (!Added)
return std::unexpected(Added.error());
+ Added = Pipeline.addPass(createOptWInstrsPass(Subtarget));
+ if (!Added)
+ return std::unexpected(Added.error());
if (!Function.properties().has(MachineFunctionProperty::NoPHIs)) {
Added = addPass<PHIEliminationPass>(Pipeline, instrInfo());
if (!Added)