Enable Machine Combiner for O1/O2/O3 optimization levels. It makes RISCV
consistent with other targets running Machine Combiner.
Originally it was enabled only for -O3, however I looked through time reports
and usually it takes 0.1%-0.4% of total time, and never takes more than 1.0%.
Differential Revision: https://reviews.llvm.org/D136339
void RISCVPassConfig::addMachineSSAOptimization() {
TargetPassConfig::addMachineSSAOptimization();
- if (TM->getOptLevel() == CodeGenOpt::Aggressive && EnableMachineCombiner)
+ if (EnableMachineCombiner)
addPass(&MachineCombinerID);
if (TM->getTargetTriple().getArch() == Triple::riscv64)
; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
; RUN: llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -mcpu=sifive-u74 \
-; RUN: -O3 -riscv-enable-machine-combiner=true \
+; RUN: -O1 -riscv-enable-machine-combiner=true \
; RUN: -stop-after machine-combiner < %s | FileCheck %s
define double @test_reassoc_fadd1(double %a0, double %a1, double %a2, double %a3) {
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -mcpu=sifive-u74 \
-; RUN: -O3 -riscv-enable-machine-combiner=true < %s | \
+; RUN: -O1 -riscv-enable-machine-combiner=true < %s | \
; RUN: FileCheck %s
define double @test_reassoc_fadd1(double %a0, double %a1, double %a2, double %a3) {