[llvm] [RISCV] Clear vill for whole vector register moves in vsetvli insertion (PR #118283)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 3 06:19:36 PST 2024


================
@@ -1426,6 +1468,15 @@ void RISCVInsertVSETVLI::emitVSETVLIs(MachineBasicBlock &MBB) {
       PrefixTransparent = false;
     }
 
+    if (isVectorCopy(ST->getRegisterInfo(), MI)) {
+      if (!PrevInfo.isCompatible(DemandedFields::all(), CurInfo, LIS)) {
+        insertVSETVLI(MBB, MI, MI.getDebugLoc(), CurInfo, PrevInfo);
----------------
lukel97 wrote:

Looks like 526.blender_r has ~80 extra vsetvlis and 510.parest_r has ~50

```
Program                                       riscv-insert-vsetvli.NumCoalescedVSETVL               riscv-insert-vsetvli.NumInsertedVSETVL                
                                              lhs                                     rhs    diff   lhs                                    rhs      diff  
FP2017rate/526.blender_r/526.blender_r        573.00                                  623.00  50.00 27778.00                               27908.00 130.00
FP2017rate/538.imagick_r/538.imagick_r        120.00                                  160.00  40.00  4758.00                                4804.00  46.00
FP2017speed/638.imagick_s/638.imagick_s       120.00                                  160.00  40.00  4758.00                                4804.00  46.00
FP2017rate/511.povray_r/511.povray_r           54.00                                   62.00   8.00  2591.00                                2602.00  11.00
FP2017rate/510.parest_r/510.parest_r           75.00                                   82.00   7.00  6051.00                                6106.00  55.00
INT2017rate/502.gcc_r/502.gcc_r                42.00                                   48.00   6.00 11241.00                               11250.00   9.00
INT2017speed/602.gcc_s/602.gcc_s               42.00                                   48.00   6.00 11241.00                               11250.00   9.00
INT2017rate/541.leela_r/541.leela_r             7.00                                   12.00   5.00   182.00                                 187.00   5.00
INT2017speed/641.leela_s/641.leela_s            7.00                                   12.00   5.00   182.00                                 187.00   5.00
INT2017rate/525.x264_r/525.x264_r             315.00                                  318.00   3.00  4585.00                                4590.00   5.00
INT2017speed/625.x264_s/625.x264_s            315.00                                  318.00   3.00  4585.00                                4590.00   5.00
INT2017rat...99.specrand_ir/999.specrand_ir                                                    0.00     5.00                                   5.00   0.00
INT2017spe...00.perlbench_s/600.perlbench_s     9.00                                    9.00   0.00   900.00                                 900.00   0.00
FP2017rate/508.namd_r/508.namd_r                4.00                                    4.00   0.00   782.00                                 782.00   0.00
INT2017speed/605.mcf_s/605.mcf_s                                                               0.00    43.00                                  43.00   0.00
INT2017spe...ed/620.omnetpp_s/620.omnetpp_s     3.00                                    3.00   0.00  1610.00                                1610.00   0.00
INT2017rate/557.xz_r/557.xz_r                                                                  0.00   232.00                                 232.00   0.00
INT2017spe...31.deepsjeng_s/631.deepsjeng_s     6.00                                    6.00   0.00   255.00                                 256.00   1.00
INT2017speed/657.xz_s/657.xz_s                                                                 0.00   232.00                                 232.00   0.00
INT2017spe...23.xalancbmk_s/623.xalancbmk_s    15.00                                   15.00   0.00  4848.00                                4850.00   2.00
INT2017rat...23.xalancbmk_r/523.xalancbmk_r    15.00                                   15.00   0.00  4848.00                                4850.00   2.00
INT2017rat...31.deepsjeng_r/531.deepsjeng_r     6.00                                    6.00   0.00   255.00                                 256.00   1.00
INT2017rate/520.omnetpp_r/520.omnetpp_r         3.00                                    3.00   0.00  1610.00                                1610.00   0.00
INT2017rate/505.mcf_r/505.mcf_r                                                                0.00    43.00                                  43.00   0.00
INT2017rat...00.perlbench_r/500.perlbench_r     9.00                                    9.00   0.00   900.00                                 900.00   0.00
FP2017spee...96.specrand_fs/996.specrand_fs                                                    0.00     5.00                                   5.00   0.00
FP2017speed/644.nab_s/644.nab_s                                                                0.00    84.00                                  84.00   0.00
FP2017speed/619.lbm_s/619.lbm_s                                                                0.00    43.00                                  43.00   0.00
FP2017rate...97.specrand_fr/997.specrand_fr                                                    0.00     5.00                                   5.00   0.00
FP2017rate/544.nab_r/544.nab_r                                                                 0.00    84.00                                  84.00   0.00
FP2017rate/519.lbm_r/519.lbm_r                                                                 0.00    43.00                                  43.00   0.00
INT2017spe...98.specrand_is/998.specrand_is                                                    0.00     5.00                                   5.00   0.00
```

https://github.com/llvm/llvm-project/pull/118283


More information about the llvm-commits mailing list