[llvm-branch-commits] [llvm] [LoopVectorizer] Prune VFs based on plan register pressure (PR #132190)
Luke Lau via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Apr 8 04:18:49 PDT 2025
lukel97 wrote:
I collected some more data on RISC-V on SPEC CPU 2017, this improves code size by up to 7% on some benchmarks, and no regressions were found: https://lnt.lukelau.me/db_default/v4/nts/399?show_delta=yes&show_previous=yes&show_stddev=yes&show_mad=yes&show_all=yes&show_all_samples=yes&show_sample_counts=yes&show_small_diff=yes&num_comparison_runs=0&test_filter=&test_min_value_filter=&aggregation_fn=min&MW_confidence_lv=0.05&compare_to=401&submit=Update
There's also a significant decrease in vector spilling and reloading. It removes all the spilling entirely on one benchmark so the geomean result is stuck at 100%:
```
Program riscv-instr-info.NumVRegReloaded riscv-instr-info.NumVRegSpilled
lhs rhs diff lhs rhs diff
FP2017rate/508.namd_r/508.namd_r 6.00 6.00 0.0% 1.00 1.00 0.0%
INT2017rat...00.perlbench_r/500.perlbench_r 8.00 8.00 0.0% 4.00 4.00 0.0%
INT2017speed/625.x264_s/625.x264_s 35.00 35.00 0.0% 39.00 39.00 0.0%
INT2017spe...23.xalancbmk_s/623.xalancbmk_s 6.00 6.00 0.0% 6.00 6.00 0.0%
INT2017spe...ed/620.omnetpp_s/620.omnetpp_s 5.00 5.00 0.0% 4.00 4.00 0.0%
INT2017speed/602.gcc_s/602.gcc_s 70.00 70.00 0.0% 64.00 64.00 0.0%
INT2017spe...00.perlbench_s/600.perlbench_s 8.00 8.00 0.0% 4.00 4.00 0.0%
INT2017rate/525.x264_r/525.x264_r 35.00 35.00 0.0% 39.00 39.00 0.0%
INT2017rat...23.xalancbmk_r/523.xalancbmk_r 6.00 6.00 0.0% 6.00 6.00 0.0%
INT2017rate/520.omnetpp_r/520.omnetpp_r 5.00 5.00 0.0% 4.00 4.00 0.0%
INT2017rate/502.gcc_r/502.gcc_r 70.00 70.00 0.0% 64.00 64.00 0.0%
FP2017speed/644.nab_s/644.nab_s 24.00 24.00 0.0% 24.00 24.00 0.0%
FP2017rate/544.nab_r/544.nab_r 24.00 24.00 0.0% 24.00 24.00 0.0%
FP2017rate/511.povray_r/511.povray_r 131.00 131.00 0.0% 74.00 74.00 0.0%
FP2017rate/510.parest_r/510.parest_r 1490.00 1484.00 -0.4% 1231.00 1225.00 -0.5%
INT2017rat...31.deepsjeng_r/531.deepsjeng_r 248.00 218.00 -12.1% 134.00 102.00 -23.9%
INT2017spe...31.deepsjeng_s/631.deepsjeng_s 248.00 218.00 -12.1% 134.00 102.00 -23.9%
FP2017rate/526.blender_r/526.blender_r 1210.00 703.00 -41.9% 1033.00 654.00 -36.7%
FP2017speed/638.imagick_s/638.imagick_s 7524.00 1486.00 -80.2% 4813.00 925.00 -80.8%
FP2017rate/538.imagick_r/538.imagick_r 7524.00 1486.00 -80.2% 4813.00 925.00 -80.8%
FP2017speed/619.lbm_s/619.lbm_s 42.00 0.00 -100.0% 42.00 -100.0%
FP2017rate/519.lbm_r/519.lbm_r 42.00 0.00 -100.0% 42.00 -100.0%
FP2017rate...97.specrand_fr/997.specrand_fr 0.00 0.00
FP2017spee...96.specrand_fs/996.specrand_fs 0.00 0.00
INT2017rate/505.mcf_r/505.mcf_r 0.00 0.00
INT2017rate/541.leela_r/541.leela_r 0.00 0.00
INT2017rate/557.xz_r/557.xz_r 0.00 0.00
INT2017rat...99.specrand_ir/999.specrand_ir 0.00 0.00
INT2017speed/605.mcf_s/605.mcf_s 0.00 0.00
INT2017speed/641.leela_s/641.leela_s 0.00 0.00
INT2017speed/657.xz_s/657.xz_s 0.00 0.00
INT2017spe...98.specrand_is/998.specrand_is 0.00 0.00
Geomean difference -100.0% -19.4%
```
https://github.com/llvm/llvm-project/pull/132190
More information about the llvm-branch-commits
mailing list