[PATCH] D60582: [IPSCCP] Add general integer range support.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 11 14:08:38 PDT 2019


fhahn marked an inline comment as done.
fhahn added a comment.

For now I would appreciate any high-level input, like is this the right place to do this or should we have a separate range propagation pass? I think we might be able to use this as a replacement for (parts) of CorrelatedValuePropagation, to avoid a few instances of recursively walking the IR.

Some initial statistics for -O3 -flto

Tests: 243
Same hash: 209 (filtered out)
Remaining: 34
Metric: sccp.IPNumInstRemoved

Program                                        base    range   diff
 test-suite...marks/SciMark2-C/scimark2.test    13.00   25.00  92.3%
 test-suite...peg2/mpeg2dec/mpeg2decode.test    23.00   35.00  52.2%
 test-suite...ngs-C/assembler/assembler.test     7.00    9.00  28.6%
 test-suite...CFP2000/177.mesa/177.mesa.test   155.00  178.00  14.8%
 test-suite...ks/Prolangs-C/agrep/agrep.test    24.00   27.00  12.5%
 test-suite.../CINT2000/254.gap/254.gap.test   117.00  127.00   8.5%
 test-suite...urce/Applications/lua/lua.test   260.00  273.00   5.0%
 test-suite...ce/Benchmarks/PAQ8p/paq8p.test    87.00   91.00   4.6%
 test-suite...langs-C/football/football.test    78.00   80.00   2.6%
 test-suite...lications/sqlite3/sqlite3.test   471.00  483.00   2.5%
 test-suite...5/124.m88ksim/124.m88ksim.test   163.00  167.00   2.5%
 test-suite...lications/ClamAV/clamscan.test   839.00  857.00   2.1%
 test-suite...CFP2006/433.milc/433.milc.test   197.00  201.00   2.0%
 test-suite...nal/skidmarks10/skidmarks.test   504.00  513.00   1.8%
 test-suite...0.perlbench/400.perlbench.test   1551.00 1578.00  1.7%
 test-suite...arks/mafft/pairlocalalign.test   237.00  241.00   1.7%
 test-suite...T2006/456.hmmer/456.hmmer.test   120.00  122.00   1.7%
 test-suite.../CINT2000/176.gcc/176.gcc.test   978.00  994.00   1.6%
 test-suite...0/253.perlbmk/253.perlbmk.test   937.00  950.00   1.4%
 test-suite...T2006/445.gobmk/445.gobmk.test   1567.00 1588.00  1.3%
 test-suite.../CINT95/134.perl/134.perl.test    86.00   87.00   1.2%
 test-suite.../CINT2006/403.gcc/403.gcc.test   3625.00 3656.00  0.9%
 test-suite...000/186.crafty/186.crafty.test   282.00  284.00   0.7%
 test-suite.../Applications/SPASS/SPASS.test   2007.00 2020.00  0.6%
 test-suite...3.xalancbmk/483.xalancbmk.test   3898.00 3915.00  0.4%
 test-suite...T95/147.vortex/147.vortex.test   3770.00 3783.00  0.3%
 test-suite...000/255.vortex/255.vortex.test   3771.00 3784.00  0.3%
 test-suite :: External/Nurbs/nurbs.test       367.00  368.00   0.3%
 test-suite...006/453.povray/453.povray.test   1616.00 1618.00  0.1%
 test-suite...-typeset/consumer-typeset.test   3158.00 3161.00  0.1%
 test-suite...ications/JM/lencod/lencod.test   8348.00 8354.00  0.1%

Tests: 243
Same hash: 209 (filtered out)
Remaining: 34
Metric: sccp.NumInstRemoved

Program                                        base    range   diff
 test-suite...peg2/mpeg2dec/mpeg2decode.test    75.00  164.00  118.7%
 test-suite...urce/Applications/lua/lua.test   381.00  717.00  88.2%
 test-suite...CFP2000/177.mesa/177.mesa.test   349.00  523.00  49.9%
 test-suite...ks/Prolangs-C/agrep/agrep.test    25.00   29.00  16.0%
 test-suite.../Applications/SPASS/SPASS.test   1913.00 2105.00 10.0%
 test-suite...5/124.m88ksim/124.m88ksim.test    62.00   68.00   9.7%
 test-suite...T2006/445.gobmk/445.gobmk.test   1067.00 1147.00  7.5%
 test-suite...lications/ClamAV/clamscan.test   1046.00 1101.00  5.3%
 test-suite.../CINT2000/176.gcc/176.gcc.test   2966.00 3068.00  3.4%
 test-suite.../CINT2006/403.gcc/403.gcc.test   6985.00 7087.00  1.5%
 test-suite...ications/JM/lencod/lencod.test   1253.00 1270.00  1.4%
 test-suite...CFP2006/444.namd/444.namd.test   174.00  175.00   0.6%
 test-suite...marks/7zip/7zip-benchmark.test   1078.00 1084.00  0.6%
 test-suite...T95/147.vortex/147.vortex.test   5896.00 5920.00  0.4%
 test-suite...000/255.vortex/255.vortex.test   5896.00 5920.00  0.4%
 test-suite...3.xalancbmk/483.xalancbmk.test   2969.00 2981.00  0.4%
 test-suite...006/453.povray/453.povray.test   590.00  592.00   0.3%
 test-suite...6/464.h264ref/464.h264ref.test   2222.00 2228.00  0.3%
 test-suite...nal/skidmarks10/skidmarks.test   1444.00 1447.00  0.2%
 test-suite...0.perlbench/400.perlbench.test   1153.00 1155.00  0.2%
 test-suite...arks/mafft/pairlocalalign.test   3360.00 3364.00  0.1%
 test-suite...-typeset/consumer-typeset.test   2988.00 2990.00  0.1%



================
Comment at: llvm/test/Transforms/SCCP/ipsccp-notnull.ll:66
+
+%struct._IO_FILE.1.3.5.7.11.13.15.17.21.23.25.27.43 = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker.0.2.4.6.10.12.14.16.20.22.24.26.42*, %struct._IO_FILE.1.3.5.7.11.13.15.17.21.23.25.27.43*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] }
+%struct._IO_marker.0.2.4.6.10.12.14.16.20.22.24.26.42 = type { %struct._IO_marker.0.2.4.6.10.12.14.16.20.22.24.26.42*, %struct._IO_FILE.1.3.5.7.11.13.15.17.21.23.25.27.43*, i32 }
----------------
Will clean up the test case.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60582/new/

https://reviews.llvm.org/D60582





More information about the llvm-commits mailing list