[PATCH] D40979: [DWARF] Allow duplication of tails with CFI instructions

Francis Visoiu Mistrih via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 8 12:08:08 PST 2018


thegameg added a comment.

In https://reviews.llvm.org/D40979#969990, @MatzeB wrote:

> Hmm yeah, I guess compact unwind is important for code size. So we would prefer to stay with the current behavior on darwin as you did with this patch. (Though I've never seen actual numbers of how big an impact it has).


I compiled the test suite + SPEC for AArch64 -Os. The diff is between trunk and trunk with generateCompactUnwinding <https://github.com/llvm-mirror/llvm/blob/master/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp#L442> returning `UNWIND_ARM64_MODE_DWARF` if there are any CFI directives.

  Program                                       diff
  
  cfp2000
  183.equake                                    30.9%
  188.ammp                                      11.5%
  177.mesa                                      6.8%
  
  cfp2006
  433.milc                                      10.9%
  482.sphinx3                                   8.1%
  450.soplex                                    7.9%
  447.dealII                                    7.1%
  453.povray                                    7.0%
  
  cint2000
  197.parser                                    10.3%
  254.gap                                       9.9%
  255.vortex                                    8.1%
  253.perlbmk                                   8.0%
  300.twolf                                     6.9%
  176.gcc                                       5.7%
  
  cint2006
  462.libquantum                                22.5%
  471.omnetpp                                   11.9%
  456.hmmer                                     11.2%
  483.xalancbmk                                 10.2%
  400.perlbench                                 7.6%
  403.gcc                                       6.4%
  464.h264ref                                   6.1%
  445.gobmk                                     3.0%
  
  cint95
  132.ijpeg                                     17.6%
  130.li                                        16.4%
  124.m88ksim                                   8.9%
  147.vortex                                    8.1%
  134.perl                                      5.7%
  099.go                                        4.8%
  
  test_suite
  SingleSour...nchmarks/Adobe-C++/loop_unroll   81.5%
  MultiSourc...enchmarks/VersaBench/dbms/dbms   30.1%
  SingleSour...arks/Adobe-C++/stepanov_vector   29.0%
  MultiSourc.../Reductions-flt/Reductions-flt   24.2%
  SingleSour.../simple_types_constant_folding   23.8%
  MultiSourc...nchmarks/FreeBench/pifft/pifft   23.5%
  MultiSourc...ALAC/encode/alacconvert-encode   21.9%
  MultiSourc...ALAC/decode/alacconvert-decode   21.9%
  MultiSource/Applications/siod/siod            20.2%
  MultiSourc...plications/lambda-0.1.3/lambda   20.0%
  MultiSource/Benchmarks/Ptrdist/bc/bc          17.9%
  SingleSour...++/simple_types_loop_invariant   14.3%
  MultiSourc...Benchmarks/7zip/7zip-benchmark   14.1%
  MultiSource/Benchmarks/PAQ8p/paq8p            11.8%
  MultiSourc...OE-ProxyApps-C++/miniFE/miniFE   11.0%
  MultiSource/Applications/SPASS/SPASS          10.9%
  MultiSourc...ch/consumer-jpeg/consumer-jpeg   10.0%
  MultiSourc...-ProxyApps-C++/PENNANT/PENNANT    9.8%
  MultiSourc.../mediabench/jpeg/jpeg-6a/cjpeg    9.1%
  MultiSourc.../MallocBench/espresso/espresso    8.9%
  MultiSource/Applications/lua/lua               8.6%
  MultiSourc...e/Applications/sqlite3/sqlite3    8.3%
  MultiSourc...ks/ASCI_Purple/SMG2000/smg2000    7.9%
  MultiSourc...e/Benchmarks/MallocBench/gs/gs    7.2%
  MultiSource/Applications/kimwitu++/kc          7.2%
  MultiSourc...ch/consumer-lame/consumer-lame    6.9%
  MultiSource/Applications/d/make_dparser        5.8%
  MultiSourc.../Applications/JM/ldecod/ldecod    5.0%
  MultiSourc...e/Applications/ClamAV/clamscan    4.9%
  MultiSourc...enchmarks/mafft/pairlocalalign    4.5%
  MultiSourc.../DOE-ProxyApps-C++/CLAMR/CLAMR    4.0%
  MultiSource/Benchmarks/Bullet/bullet           3.9%
  SingleSour.../Benchmarks/Misc-C++-EH/spirit    3.5%
  MultiSourc...sumer-typeset/consumer-typeset    3.0%
  MultiSourc.../Applications/JM/lencod/lencod    2.5%
  MultiSource/Applications/oggenc/oggenc         0.8%
  SingleSour...Adobe-C++/stepanov_abstraction    0.1%


Repository:
  rL LLVM

https://reviews.llvm.org/D40979





More information about the llvm-commits mailing list