[LLVMbugs] [Bug 10916] New: -disable-iv-rewrite performance summary

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Sep 12 10:48:06 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=10916

           Summary: -disable-iv-rewrite performance summary
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: ASSIGNED
          Severity: normal
          Priority: P
         Component: Loop Optimizer
        AssignedTo: atrick at apple.com
        ReportedBy: atrick at apple.com
                CC: llvmbugs at cs.uiuc.edu


Canonical IVs pessimize code. Consequently, -disable-iv-rewrite
currently results in the following benchmark speedups (and slowdowns).

The slowdowns resulting from -disable-iv-rewrite will be
tracked separately after closing this PR. Some are minor codegen
(scheduling/regalloc) issues that are amplified by certain
benchmarks. It's difficult to fix all of these without regressing
elsewhere. Most of the significant regressions will be resolved be
fixing LSR to avoid doing the wrong thing. It is probably a matter of
teaching LSR when to bail out. For example, running ffbench on my
nehalem takes:

0.93s on trunk
1.08s with -disable-iv-rewrite
0.87s with -disable-iv-rewrite + -disable-lsr (+7% net speedup)

Here are the overall -O3 speedups with -disable-iv-rewrite
(in terms of "trunk time" / "no iv rewrite time") >= 2%.

** x86 speedups

SingleSource/Benchmarks/Misc/himenobmtxpa     64.00%
SingleSource/Benchmarks/Misc/oourafft     25.00%
MultiSource/Benchmarks/BitBench/uudecode/uudecode     22.00%
SingleSource/Benchmarks/CoyoteBench/huffbench     16.00%
MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk     14.00%
SingleSource/Benchmarks/Adobe-C++/loop_unroll     14.00%
SingleSource/Benchmarks/Stanford/Puzzle     13.00%
MultiSource/Benchmarks/MiBench/automotive-bitcount/automotive-bitcount    
9.00%
External/skidmarks10/skidmarks.Subtest.Quicksort     8.00%
MultiSource/Benchmarks/FreeBench/pifft/pifft     8.00%
External/Nurbs/nurbs     7.00%
External/SPEC/CINT2000/253.perlbmk/253.perlbmk     6.00%
External/skidmarks10/skidmarks.Subtest.BigMult     6.00%
SingleSource/Benchmarks/Misc/lowercase     6.00%
SingleSource/Benchmarks/Shootout-C++/except     6.00%
MultiSource/Benchmarks/MiBench/telecomm-CRC32/telecomm-CRC32     5.00%
External/SPEC/CFP2000/177.mesa/177.mesa     4.00%
External/skidmarks10/skidmarks     4.00%
MultiSource/Applications/minisat/minisat     4.00%
MultiSource/Benchmarks/Fhourstones/fhourstones     4.00%
MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm     4.00%
SingleSource/Benchmarks/Misc/mandel-2     4.00%
External/SPEC/CFP2006/447.dealII/447.dealII     3.00%
External/SPEC/CINT2000/256.bzip2/256.bzip2     3.00%
External/SPEC/CINT2006/464.h264ref/464.h264ref     3.00%
MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk     3.00%
MultiSource/Benchmarks/MallocBench/espresso/espresso     3.00%
MultiSource/Benchmarks/Prolangs-C++/primes/primes     3.00%
SingleSource/Benchmarks/Shootout/ary3     3.00%
External/SPEC/CFP2006/444.namd/444.namd     2.00%
External/SPEC/CINT2006/403.gcc/403.gcc     2.00%
External/skidmarks10/skidmarks.Subtest.Quant     2.00%
MultiSource/Applications/lua/lua     2.00%
MultiSource/Benchmarks/Fhourstones-3.1/fhourstones3.1     2.00%
MultiSource/Benchmarks/Olden/bisort/bisort     2.00%
MultiSource/Benchmarks/SciMark2-C/scimark2     2.00%
MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes     2.00%
MultiSource/Benchmarks/sim/sim     2.00%
SingleSource/Benchmarks/BenchmarkGame/recursive     2.00%

** x86 slowdowns

SingleSource/Benchmarks/Misc/ffbench     -14.00%
SingleSource/Benchmarks/McGill/chomp     -12.00%
SingleSource/Benchmarks/Misc/fp-convert     -10.00%
External/skidmarks10/skidmarks.Subtest.Ellipticrypt     -8.00%
SingleSource/Benchmarks/Shootout/matrix     -7.00%
External/SPEC/CINT2006/401.bzip2/401.bzip2     -5.00%
MultiSource/Benchmarks/mafft/pairlocalalign     -4.00%
External/SPEC/CINT2006/471.omnetpp/471.omnetpp     -3.00%
External/skidmarks10/skidmarks.Subtest.Q3     -3.00%
MultiSource/Applications/viterbi/viterbi     -3.00%
MultiSource/Benchmarks/BitBench/drop3/drop3     -3.00%
MultiSource/Benchmarks/VersaBench/8b10b/8b10b     -3.00%
SingleSource/Benchmarks/Misc-C++/bigfib     -3.00%
SingleSource/Benchmarks/Misc/ReedSolomon     -3.00%
SingleSource/Benchmarks/Shootout-C++/fibo     -3.00%
SingleSource/Benchmarks/Shootout/fib2     -3.00%
External/SPEC/CFP2000/179.art/179.art     -2.00%
MultiSource/Applications/JM/lencod/lencod     -2.00%
MultiSource/Benchmarks/Ptrdist/yacr2/yacr2     -2.00%
SingleSource/Benchmarks/Shootout/sieve     -2.00%

** ARM speedups

External/skidmarks10/skidmarks.Subtest.Quicksort     14.00%
SingleSource/Benchmarks/Misc/oourafft     11.00%
External/SPEC/CFP2006/470.lbm/470.lbm     9.00%
SingleSource/Benchmarks/Shootout-C++/ary2     9.00%
MultiSource/Benchmarks/Olden/health/health     8.00%
SingleSource/Benchmarks/Shootout-C++/hash2     8.00%
External/skidmarks10/skidmarks.Subtest.FFT     7.00%
SingleSource/Benchmarks/Misc/flops-4     7.00%
SingleSource/Benchmarks/Misc/flops-5     7.00%
External/SPEC/CINT2006/456.hmmer/456.hmmer     6.00%
SingleSource/Benchmarks/Misc/flops-7     6.00%
External/SPEC/CFP2000/177.mesa/177.mesa     5.00%
External/SPEC/CINT2006/464.h264ref/464.h264ref     5.00%
External/SPEC/CINT95/130.li/130.li     5.00%
External/skidmarks10/skidmarks.Subtest.IntToFloat     5.00%
MultiSource/Applications/aha/aha     5.00%
MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow     5.00%
External/skidmarks10/skidmarks.Subtest.ParseVid     4.00%
MultiSource/Applications/lemon/lemon     4.00%
SingleSource/Benchmarks/Shootout/ary3     4.00%
SingleSource/Benchmarks/Shootout/hash     4.00%
External/SPEC/CINT2000/175.vpr/175.vpr     3.00%
External/SPEC/CINT2000/252.eon/252.eon     3.00%
External/skidmarks10/skidmarks     3.00%
MultiSource/Applications/ClamAV/clamscan     3.00%
MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk     3.00%
MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm     3.00%
External/SPEC/CINT2000/164.gzip/164.gzip     2.00%
External/SPEC/CINT2000/300.twolf/300.twolf     2.00%
MultiSource/Applications/spiff/spiff     2.00%
MultiSource/Applications/sqlite3/sqlite3     2.00%
MultiSource/Benchmarks/BitBench/drop3/drop3     2.00%
MultiSource/Benchmarks/MallocBench/espresso/espresso     2.00%
MultiSource/Benchmarks/McCat/17-bintr/bintr     2.00%
MultiSource/Benchmarks/Ptrdist/yacr2/yacr2     2.00%
MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1     2.00%
MultiSource/Benchmarks/Trimaran/enc-rc4/enc-rc4     2.00%
SingleSource/Benchmarks/Adobe-C++/functionobjects     2.00%
SingleSource/Benchmarks/Adobe-C++/stepanov_vector     2.00%
SingleSource/Benchmarks/McGill/queens     2.00%
SingleSource/Benchmarks/Misc/flops     2.00%
SingleSource/Benchmarks/Shootout-C++/ary3     2.00%

** ARM slowdowns

SingleSource/Benchmarks/Shootout/sieve     -16.00%
SingleSource/Benchmarks/McGill/chomp     -15.00%
SingleSource/Benchmarks/Misc-C++/bigfib     -11.00%
External/skidmarks10/skidmarks.Subtest.PixBlend     -9.00%
MultiSource/Benchmarks/McCat/04-bisect/bisect     -8.00%
MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan     -8.00%
MultiSource/Benchmarks/Prolangs-C++/ocean/ocean     -8.00%
SingleSource/Benchmarks/CoyoteBench/huffbench     -8.00%
SingleSource/Benchmarks/Shootout-C++/ackermann     -8.00%
External/skidmarks10/skidmarks.Subtest.MPEG     -5.00%
MultiSource/Applications/siod/siod     -5.00%
MultiSource/Benchmarks/FreeBench/analyzer/analyzer     -5.00%
MultiSource/Benchmarks/FreeBench/pcompress2/pcompress2     -5.00%
MultiSource/Applications/lua/lua     -4.00%
MultiSource/Benchmarks/Olden/treeadd/treeadd     -3.00%
SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant     -3.00%
SingleSource/Benchmarks/Misc/fp-convert     -3.00%
MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes     -2.00%

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list