[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