[PATCH] D79650: [AssumeBundles] add cannonicalisation to the assume builder

Tyker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 8 14:31:35 PDT 2020


Tyker created this revision.
Tyker added a reviewer: jdoerfert.
Herald added subscribers: llvm-commits, asbirlea, hiraditya.
Herald added a reviewer: sstefan1.
Herald added a project: LLVM.

this reduces significantly the number of assumes generated without aftecting too much
the information that is preserved. this improves the compile-time cost
of enable-knowledge-retention significantly.

cost of enable-knowledge-retention before the patch

  Metric: inst_count
  Program                                                      baseline      patched       diff
   test-suite :: CTMark/tramp3d-v4/tramp3d-v4.test              118759192395  155068323810 30.6%
   test-suite :: CTMark/Bullet/bullet.test                      132173382943  172092586752 30.2%
   test-suite :: CTMark/7zip/7zip-benchmark.test                193010622254  201710179449  4.5%
   test-suite :: CTMark/kimwitu++/kc.test                       61391711480   64129872325   4.5%
   test-suite :: CTMark/ClamAV/clamscan.test                    80896366241   79491189655  -1.7%
   test-suite :: CTMark/sqlite3/sqlite3.test                    77983944971   77321823801  -0.8%
   test-suite :: CTMark/consumer-typeset/consumer-typeset.test  56565054641   56127618358  -0.8%
   test-suite :: CTMark/mafft/pairlocalalign.test               54476149303   54268277583  -0.4%
   test-suite :: CTMark/SPASS/SPASS.test                        65588484451   65405266465  -0.3%
   Geomean difference                                                                       6.6%
  
  Metric: compile_time
  Program                                                      baseline patched diff
   test-suite :: CTMark/tramp3d-v4/tramp3d-v4.test              38.60    49.38  27.9%
   test-suite :: CTMark/Bullet/bullet.test                      43.90    54.25  23.6%
   test-suite :: CTMark/kimwitu++/kc.test                       22.88    24.20   5.8%
   test-suite :: CTMark/7zip/7zip-benchmark.test                66.93    70.27   5.0%
   test-suite :: CTMark/sqlite3/sqlite3.test                    24.70    24.47  -0.9%
   test-suite :: CTMark/ClamAV/clamscan.test                    24.12    23.91  -0.9%
   test-suite :: CTMark/mafft/pairlocalalign.test               15.91    15.84  -0.5%
   test-suite :: CTMark/consumer-typeset/consumer-typeset.test  17.09    17.10   0.1%
   test-suite :: CTMark/SPASS/SPASS.test                        21.81    21.82   0.1%
   Geomean difference                                                            6.2%

cost after this patch

  Metric: inst_count
  Program                                                      baseline      patched       diff
   test-suite :: CTMark/tramp3d-v4/tramp3d-v4.test              118763840162  138467480074 16.6%
   test-suite :: CTMark/Bullet/bullet.test                      132174006965  136291227509  3.1%
   test-suite :: CTMark/kimwitu++/kc.test                       61393799157   62997635803   2.6%
   test-suite :: CTMark/7zip/7zip-benchmark.test                192990097336  197727495942  2.5%
   test-suite :: CTMark/ClamAV/clamscan.test                    80896861556   79484165212  -1.7%
   test-suite :: CTMark/sqlite3/sqlite3.test                    77990896082   77343953874  -0.8%
   test-suite :: CTMark/consumer-typeset/consumer-typeset.test  56564081236   56118858184  -0.8%
   test-suite :: CTMark/mafft/pairlocalalign.test               54474697759   54263079601  -0.4%
   test-suite :: CTMark/SPASS/SPASS.test                        65590532152   65405772667  -0.3%
   Geomean difference                                                                       2.2%
  
  Metric: compile_time
  Program                                                      baseline patched diff
   test-suite :: CTMark/tramp3d-v4/tramp3d-v4.test              38.91    46.75  20.1%
   test-suite :: CTMark/7zip/7zip-benchmark.test                67.93    71.22   4.8%
   test-suite :: CTMark/Bullet/bullet.test                      44.90    46.55   3.7%
   test-suite :: CTMark/kimwitu++/kc.test                       23.58    24.28   3.0%
   test-suite :: CTMark/mafft/pairlocalalign.test               16.09    16.39   1.8%
   test-suite :: CTMark/ClamAV/clamscan.test                    24.63    24.19  -1.8%
   test-suite :: CTMark/sqlite3/sqlite3.test                    25.25    25.37   0.5%
   test-suite :: CTMark/consumer-typeset/consumer-typeset.test  17.28    17.33   0.2%
   test-suite :: CTMark/SPASS/SPASS.test                        22.36    22.39   0.1%
   Geomean difference                                                            3.4%


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D79650

Files:
  llvm/include/llvm/IR/Operator.h
  llvm/lib/IR/Operator.cpp
  llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
  llvm/test/Analysis/BasicAA/featuretest.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2-preservation.ll
  llvm/test/Transforms/InstSimplify/load.ll
  llvm/test/Transforms/LICM/pr23608.ll
  llvm/test/Transforms/NewGVN/2007-07-26-PhiErasure.ll
  llvm/test/Transforms/Util/assume-builder.ll
  llvm/test/Transforms/Util/assume-simplify.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79650.262956.patch
Type: text/x-patch
Size: 82637 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200508/7a7426d4/attachment-0001.bin>


More information about the llvm-commits mailing list