[LLVMbugs] [Bug 11035] New: -enable-lsr-nested performance summary

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Sep 28 16:03:31 PDT 2011


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

           Summary: -enable-lsr-nested performance summary
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: ASSIGNED
          Severity: enhancement
          Priority: P
         Component: Common Code Generator Code
        AssignedTo: atrick at apple.com
        ReportedBy: atrick at apple.com
                CC: llvmbugs at cs.uiuc.edu


I measured the following perfomance changes after disabling LSR on
outer loops. The real reason for disabling the feature, is that LSR
does not yet know how to model nested loops and sometimes gets it very
wrong.  So although we can theoretically benefit from doing this, we
should "first do no harm". Eventually, we may figure out how to model
it and reenable the feature.

These are simply the numbers I happen to get on my hardware and the
scores are highly sensitive to slight changes in codegen
(e.g. different triple) and microarchitecture, so others will not get
the same result.

There are only two significant regressions on mildly interesting
benchmarks:

1) huffbench on x86_64. This actually looks like a code alignment
   issue. It's highly platform sensitive and unrelated to my change.

2) enc-rc4 on ARM. This is really an example of LSR still doing the wrong
   thing even though it's limited to the inner loop. I'm working on
   fixing those issues and internally tracking this one as
   rdar://problem/10203729

** x86 speedups

MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft     33.00%
SingleSource/Benchmarks/Misc/ffbench     23.00%
MultiSource/Benchmarks/MallocBench/gs/gs     17.00%
External/SPEC/CINT2006/471.omnetpp/471.omnetpp     7.00%
SingleSource/Benchmarks/Misc-C++/oopack_v1p8     6.00%
SingleSource/Benchmarks/Shootout-C++/except     6.00%
External/SPEC/CINT2006/401.bzip2/401.bzip2     5.00%
MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset     5.00%
MultiSource/Applications/spiff/spiff     4.00%
MultiSource/Benchmarks/Fhourstones-3.1/fhourstones3.1     4.00%
SingleSource/Benchmarks/BenchmarkGame/fannkuch     4.00%
External/SPEC/CINT2006/400.perlbench/400.perlbench     3.00%
External/skidmarks10/skidmarks.Subtest.Quicksort     3.00%
MultiSource/Applications/hexxagon/hexxagon     3.00%
MultiSource/Benchmarks/McCat/12-IOtest/iotest     3.00%
MultiSource/Benchmarks/Ptrdist/yacr2/yacr2     3.00%
MultiSource/Benchmarks/sim/sim     3.00%
External/SPEC/CINT2006/462.libquantum/462.libquantum     2.00%
External/skidmarks10/skidmarks.Subtest.FFT     2.00%
MultiSource/Applications/JM/lencod/lencod     2.00%

** x86 slowdowns

SingleSource/Benchmarks/CoyoteBench/huffbench     -14.00%
MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000     -6.00%
SingleSource/Benchmarks/Misc/oourafft     -6.00%
External/skidmarks10/skidmarks.Subtest.Rijndael     -5.00%
MultiSource/Applications/aha/aha     -3.00%
SingleSource/Benchmarks/BenchmarkGame/n-body     -3.00%
External/SPEC/CINT2000/253.perlbmk/253.perlbmk     -2.00%
External/skidmarks10/skidmarks.Subtest.BigMult     -2.00%
MultiSource/Applications/minisat/minisat     -2.00%
MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk     -2.00%

** ARM speedups

SingleSource/Benchmarks/Shootout-C++/nestedloop     20.00%
SingleSource/Benchmarks/Dhrystone/dry     11.00%
MultiSource/Benchmarks/Olden/health/health     10.00%
External/SPEC/CINT95/124.m88ksim/124.m88ksim     9.00%
MultiSource/Benchmarks/ASC_Sequoia/IRSmk/IRSmk     9.00%
MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan     9.00%
MultiSource/Applications/JM/lencod/lencod     5.00%
MultiSource/Benchmarks/Prolangs-C++/ocean/ocean     5.00%
External/skidmarks10/skidmarks.Subtest.FFT     4.00%
MultiSource/Benchmarks/MallocBench/gs/gs     4.00%
SingleSource/Benchmarks/CoyoteBench/huffbench     4.00%
External/Povray/povray     3.00%
External/skidmarks10/skidmarks.Subtest.MPEG     3.00%
MultiSource/Benchmarks/MiBench/security-rijndael/security-rijndael     3.00%
MultiSource/Benchmarks/Prolangs-C++/life/life     3.00%
MultiSource/Benchmarks/Ptrdist/ks/ks     3.00%
SingleSource/Benchmarks/McGill/misr     3.00%
External/SPEC/CFP2000/188.ammp/188.ammp     2.00%
External/SPEC/CFP2006/444.namd/444.namd     2.00%
External/SPEC/CINT2000/186.crafty/186.crafty     2.00%
External/SPEC/CINT2006/401.bzip2/401.bzip2     2.00%
External/SPEC/CINT2006/456.hmmer/456.hmmer     2.00%
External/skidmarks10/skidmarks.Subtest.Ellipticrypt     2.00%
MultiSource/Applications/spiff/spiff     2.00%
MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm     2.00%
MultiSource/Benchmarks/Olden/treeadd/treeadd     2.00%
MultiSource/Benchmarks/Ptrdist/yacr2/yacr2     2.00%

** ARM slowdowns

MultiSource/Benchmarks/Trimaran/enc-rc4/enc-rc4     -14.00%
MultiSource/Benchmarks/McCat/08-main/main     -10.00%
MultiSource/Benchmarks/Prolangs-C/gnugo/gnugo     -9.00%
SingleSource/Benchmarks/Stanford/Puzzle     -7.00%
MultiSource/Applications/aha/aha     -6.00%
SingleSource/Benchmarks/Misc/ffbench     -6.00%
SingleSource/Benchmarks/Dhrystone/fldry     -5.00%
External/skidmarks10/skidmarks.Subtest.Quicksort     -4.00%
SingleSource/Benchmarks/Adobe-C++/functionobjects     -3.00%
SingleSource/Benchmarks/Shootout/sieve     -3.00%
External/SPEC/CINT2006/471.omnetpp/471.omnetpp     -2.00%
External/SPEC/CINT95/132.ijpeg/132.ijpeg     -2.00%
MultiSource/Benchmarks/sim/sim     -2.00%
SingleSource/Benchmarks/BenchmarkGame/n-body     -2.00%
SingleSource/Benchmarks/BenchmarkGame/puzzle     -2.00%
SingleSource/Benchmarks/Misc/ReedSolomon     -2.00%
SingleSource/Benchmarks/Shootout/heapsort     -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