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: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to