[llvm] [MCP] Move dependencies if they block copy propagation (PR #105562)

Gábor Spaits via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 26 12:15:02 PDT 2024


spaits wrote:

Here are the updated results. I used this cmake command now:
```bash
cmake -DCMAKE_C_COMPILER=/home/spaits/repo/spare-llvm/llvm-project/build/bin/clang -DCMAKE_CXX_FLAGS='-lstdc++ -lrt -lm -lpthread'   -DTEST_SUITE_SUBDIRS=CTMark .. -GNinja
```

My clang was compiled in release mode.

This time I have run the benchmarks four times for the baseline and four times for my changes and merged them with compare.py.
Here are the results. Now the baseline is on the left.
Compile time:
```
Metric: compile_time

/home/spaits/repo/llvm-test-suite/build/../utils/compare.py:206: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  name0 = names[0]
Program                                       compile_time             
                                              lhs          rhs    diff 
kimwitu++/kc                                   36.90        41.08 11.3%
mafft/pairlocalalign                           22.59        24.13  6.8%
consumer-typeset/consumer-typeset              27.19        28.21  3.8%
tramp3d-v4/tramp3d-v4                          35.39        35.97  1.6%
Bullet/bullet                                  84.59        85.60  1.2%
lencod/lencod                                  43.72        43.72  0.0%
7zip/7zip-benchmark                           178.00       175.89 -1.2%
ClamAV/clamscan                                45.49        44.81 -1.5%
sqlite3/sqlite3                                14.66        14.25 -2.8%
SPASS/SPASS                                    40.12        38.79 -3.3%
                           Geomean difference                      1.5%
      compile_time                      
l/r            lhs        rhs       diff
count  10.000000    10.00000   10.000000
mean   52.864370    53.24520   0.015967 
std    47.796605    47.02377   0.045956 
min    14.659300    14.25310  -0.033186 
25%    29.238775    30.15100  -0.014311 
50%    38.510750    39.93680   0.006018 
75%    45.049625    44.53395   0.032314 
max    177.996800   175.89140  0.113380 
```

Execution time:
```
Metric: exec_time

/home/spaits/repo/llvm-test-suite/build/../utils/compare.py:206: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  name0 = names[0]
Program                                       exec_time              
                                              lhs       rhs    diff  
kimwitu++/kc                                    0.00      0.01 163.3%
tramp3d-v4/tramp3d-v4                           0.06      0.06   5.3%
lencod/lencod                                   1.74      1.82   4.6%
SPASS/SPASS                                     3.39      3.48   2.7%
Bullet/bullet                                   1.56      1.59   2.1%
7zip/7zip-benchmark                             4.71      4.77   1.4%
ClamAV/clamscan                                 0.05      0.05   1.2%
mafft/pairlocalalign                            8.40      8.33  -0.8%
sqlite3/sqlite3                                 1.00      0.99  -1.2%
consumer-typeset/consumer-typeset               0.05      0.05  -2.1%
                           Geomean difference                   11.6%
       exec_time                      
l/r          lhs        rhs       diff
count  10.000000  10.000000  10.000000
mean   2.094720   2.114030   0.176381 
std    2.722439   2.714371   0.512490 
min    0.003000   0.007900  -0.021413 
25%    0.053225   0.054475  -0.003368 
50%    1.279450   1.289500   0.017292 
75%    2.975650   3.064350   0.041438 
max    8.396700   8.326000   1.633333
```

Text section size:
```
Metric: size..text

/home/spaits/repo/llvm-test-suite/build/../utils/compare.py:206: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  name0 = names[0]
Program                                       size..text                
                                              lhs        rhs       diff 
mafft/pairlocalalign                          452119.00  452103.00 -0.0%
kimwitu++/kc                                  403971.00  403955.00 -0.0%
lencod/lencod                                 763725.00  763693.00 -0.0%
tramp3d-v4/tramp3d-v4                         884131.00  884083.00 -0.0%
Bullet/bullet                                 726622.00  726558.00 -0.0%
consumer-typeset/consumer-typeset             442577.00  442529.00 -0.0%
7zip/7zip-benchmark                           907121.00  906913.00 -0.0%
ClamAV/clamscan                               540338.00  540178.00 -0.0%
sqlite3/sqlite3                               490639.00  490447.00 -0.0%
SPASS/SPASS                                   505890.00  505586.00 -0.1%
                           Geomean difference                      -0.0%
          size..text                          
l/r              lhs            rhs       diff
count  10.000000      10.000000      10.000000
mean   611713.300000  611604.500000 -0.000189 
std    190314.056507  190310.634149  0.000190 
min    403971.000000  403955.000000 -0.000601 
25%    461749.000000  461689.000000 -0.000279 
50%    523114.000000  522882.000000 -0.000098 
75%    754449.250000  754409.250000 -0.000045 
max    907121.000000  906913.000000 -0.000035 

```

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


More information about the llvm-commits mailing list