diff options
author | Mikhail R. Gadelha <mikhail@igalia.com> | 2025-03-27 19:31:38 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-27 19:31:38 -0300 |
commit | d8e44a9ab2901eee7cd0440b62722eb01cac94d7 (patch) | |
tree | 5fdfb68bb16d610e7eb666237ae6b7926e072ba1 /llvm/lib/Target/RISCV/RISCVTargetMachine.cpp | |
parent | 01e505b9922485514d4e1f9a26c390d0e7a71bf4 (diff) | |
download | llvm-d8e44a9ab2901eee7cd0440b62722eb01cac94d7.zip llvm-d8e44a9ab2901eee7cd0440b62722eb01cac94d7.tar.gz llvm-d8e44a9ab2901eee7cd0440b62722eb01cac94d7.tar.bz2 |
[RISCV] Add late optimization pass for riscv (#133256)
This patch is an alternative to PRs #117060, #131684, #131728.
The patch adds a late optimization pass that replaces conditional
branches that can be statically evaluated with an unconditinal branch.
Adding Michael as a co-author as most of the code that evaluates the
condition comes from #131684.
Co-authored-by: Michael Maitland michaeltmaitland@gmail.com
Diffstat (limited to 'llvm/lib/Target/RISCV/RISCVTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/RISCV/RISCVTargetMachine.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp b/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp index f78e5f8..ec8ba33 100644 --- a/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp +++ b/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp @@ -127,6 +127,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeRISCVTarget() { initializeRISCVPostLegalizerCombinerPass(*PR); initializeKCFIPass(*PR); initializeRISCVDeadRegisterDefinitionsPass(*PR); + initializeRISCVLateBranchOptPass(*PR); initializeRISCVMakeCompressibleOptPass(*PR); initializeRISCVGatherScatterLoweringPass(*PR); initializeRISCVCodeGenPreparePass(*PR); @@ -565,6 +566,8 @@ void RISCVPassConfig::addPreEmitPass() { if (TM->getOptLevel() >= CodeGenOptLevel::Default && EnableRISCVCopyPropagation) addPass(createMachineCopyPropagationPass(true)); + if (TM->getOptLevel() >= CodeGenOptLevel::Default) + addPass(createRISCVLateBranchOptPass()); addPass(&BranchRelaxationPassID); addPass(createRISCVMakeCompressibleOptPass()); } |