[clang] [llvm] [SimplifyCFG] Emit SelectInst when folding branches to common dest with different PHI incoming values (PR #144434)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 4 01:13:59 PDT 2025
HighW4y2H3ll wrote:
Sorry for getting back late... I added instruction cost to the loop passes, and I've now tested it with the Spec 2006/2017 on *x86*. The perf result actually looked not too bad:
__SPEC2006:__
```
Program exec_time
base test diff
test-suite :: External/SPEC/CINT2006/471.omnetpp/471.omnetpp.test 34.75 34.53 -0.6%
test-suite :: External/SPEC/CINT2006/401.bzip2/401.bzip2.test 34.69 34.33 -1.0%
test-suite :: External/SPEC/CFP2006/470.lbm/470.lbm.test 22.10 21.87 -1.1%
test-suite :: External/SPEC/CINT2006/456.hmmer/456.hmmer.test 29.15 28.80 -1.2%
test-suite :: External/SPEC/CFP2006/453.povray/453.povray.test 3.86 3.81 -1.4%
test-suite :: External/SPEC/CFP2006/433.milc/433.milc.test 12.95 12.75 -1.5%
test-suite :: External/SPEC/CINT2006/429.mcf/429.mcf.test 16.91 16.56 -2.1%
test-suite :: External/SPEC/CINT2006/483.xalancbmk/483.xalancbmk.test 34.13 33.35 -2.3%
test-suite :: External/SPEC/CFP2006/444.namd/444.namd.test 7.57 7.32 -3.3%
test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test 12.37 11.95 -3.5%
test-suite :: External/SPEC/CINT2006/458.sjeng/458.sjeng.test 84.95 81.43 -4.1%
test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 47.42 45.34 -4.4%
test-suite :: External/SPEC/CFP2006/450.soplex/450.soplex.test 4.34 4.13 -4.7%
test-suite :: External/SPEC/CFP2006/447.dealII/447.dealII.test 16.16 15.39 -4.8%
test-suite :: External/SPEC/CINT2006/403.gcc/403.gcc.test 0.65 0.62 -4.9%
test-suite :: External/SPEC/CINT2006/473.astar/473.astar.test 71.30 67.68 -5.1%
test-suite :: External/SPEC/CINT2006/462.libquantum/462.libquantum.test 0.83 0.78 -5.8%
test-suite :: External/SPEC/CFP2006/482.sphinx3/482.sphinx3.test 6.42 5.81 -9.5%
Geomean difference -3.4%
exec_time
run base test diff
count 18.000000 18.000000 18.000000
mean 24.474889 23.691750 -0.033971
std 23.864030 22.869492 0.022583
min 0.651500 0.619800 -0.094641
25% 6.706275 6.188825 -0.047757
50% 16.538200 15.975400 -0.033624
75% 34.550575 34.085850 -0.014466
max 84.948000 81.430900 -0.006449
```
__SPEC2017:__
```
Metric: exec_time
Program exec_time
base test diff
test-suite :: External/SPEC/CINT2017speed/620.omnetpp_s/620.omnetpp_s.test 67.11 70.04 4.4%
test-suite :: External/SPEC/CINT2017speed/631.deepsjeng_s/631.deepsjeng_s.test 79.36 82.45 3.9%
test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test 16.05 16.60 3.4%
test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test 16.07 16.59 3.2%
test-suite :: External/SPEC/CINT2017rate/502.gcc_r/502.gcc_r.test 44.88 46.17 2.9%
test-suite :: External/SPEC/CINT2017speed/605.mcf_s/605.mcf_s.test 69.18 71.15 2.8%
test-suite :: External/SPEC/CINT2017rate/500.perlbench_r/500.perlbench_r.test 21.81 22.36 2.5%
test-suite :: External/SPEC/CINT2017rate/531.deepsjeng_r/531.deepsjeng_r.test 64.88 66.04 1.8%
test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test 22.30 22.68 1.7%
test-suite :: External/SPEC/CFP2017rate/519.lbm_r/519.lbm_r.test 29.46 29.95 1.6%
test-suite :: External/SPEC/CFP2017rate/511.povray_r/511.povray_r.test 3.99 4.04 1.4%
test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 46.26 46.80 1.2%
test-suite :: External/SPEC/CINT2017speed/600.perlbench_s/600.perlbench_s.test 21.67 21.90 1.1%
test-suite :: External/SPEC/CINT2017speed/602.gcc_s/602.gcc_s.test 45.04 45.50 1.0%
test-suite :: External/SPEC/CINT2017speed/641.leela_s/641.leela_s.test 86.22 86.71 0.6%
test-suite :: External/SPEC/CFP2017speed/644.nab_s/644.nab_s.test 74.25 74.67 0.6%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 127.30 127.68 0.3%
test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test 22.70 22.52 -0.8%
test-suite :: External/SPEC/CFP2017rate/544.nab_r/544.nab_r.test 75.33 74.65 -0.9%
test-suite :: External/SPEC/CINT2017rate/541.leela_r/541.leela_r.test 87.86 87.00 -1.0%
test-suite :: External/SPEC/CFP2017speed/619.lbm_s/619.lbm_s.test 238.29 235.39 -1.2%
test-suite :: External/SPEC/CFP2017rate/508.namd_r/508.namd_r.test 29.60 29.05 -1.8%
test-suite :: External/SPEC/CINT2017speed/657.xz_s/657.xz_s.test 45.00 44.12 -2.0%
test-suite :: External/SPEC/CINT2017rate/505.mcf_r/505.mcf_r.test 72.10 69.16 -4.1%
test-suite :: External/SPEC/CINT2017speed/623.xalancbmk_s/623.xalancbmk_s.test 46.23 44.25 -4.3%
test-suite :: External/SPEC/CINT2017rate/557.xz_r/557.xz_r.test 45.56 43.38 -4.8%
test-suite :: External/SPEC/CINT2017rate/520.omnetpp_r/520.omnetpp_r.test 72.71 69.19 -4.8%
test-suite :: External/SPEC/CINT2017rate/523.xalancbmk_r/523.xalancbmk_r.test 46.43 43.91 -5.4%
Geomean difference 0.1%
exec_time
run base test diff
count 28.000000 28.000000 28.000000
mean 57.772139 57.640882 0.001173
std 45.119508 44.733954 0.028266
min 3.987300 4.042600 -0.054360
25% 27.774275 27.458925 -0.013713
50% 46.241750 45.836600 0.007915
75% 73.092825 72.024250 0.019792
max 238.290500 235.389600 0.043668
```
@david-arm could you check again on arm?
https://github.com/llvm/llvm-project/pull/144434
More information about the llvm-commits
mailing list