Fixes a FIXME in MachineSinking. Instead of using the simple heuristics
in isPostDominatedBy, use the real MachinePostDominatorTree. The old
heuristics caused instructions to sink unnecessarily, and might create
register pressure.
Details
Diff Detail
Event Timeline
Hi Jiangning,
I saw you actively working on AArch64 and backend in general. Maybe you can take a look at this, or point me to the right person for review.
Thanks,
Jingyue
Hi Jingyue,
The code change itself looks quite straightforward and sensible to me!
I will help to measure the performance impact of your patch later on.
Thanks,
-Jiangning
Hi Jingyue,
I tried spec2000/int for cortex-a57, and got the following numbers, (negative is better),
164.gzip -0.39%
175.vpr 0.91%
176.gcc 0.83%
181.mcf 0.78%
186.crafty 0.00%
197.parser 0.32%
252.eon -0.73%
253.perlbmk 0.00%
254.gap 1.75%
255.vortex -1.04%
256.bzip2 0.46%
300.twolf 1.12%
I think the result it's OK. All seem to be noises.
Thanks,
-Jiangning
Jiangning, thanks a lot for running the experiments! I should do that later as well. With that, do you think this patch is good to go?
Just a clarification question: are these numbers compilation times or runtime performance numbers?
Hi Jingyue,
My data is for performance only.
I think you can use llvm-test-suite to verify compile time CC_Time and CC_Real_Time. I just did this recently for my LVI patch.
Thanks,
-Jiangning
Hi Jiangning and Owen,
I measured the CC_Time for all applications in llvm-test-suite (see the
results at the end). The first line is the name of the application, and the
second line contains the slowdown (negative means better) after my change
is applied, and the absolute CC_time of the original compiler.
The timing is not quite stable for applications that take <1 second to
compile. However, for applications that take longer to compile (e.g.,
7zip-benchmark), the CC_time is roughly the same as before.
The geomean of CC_time slowdown across all applications is 0.9825 (which
means ~2% faster). But given the unstableness of short-running
applications, I'd say it probably just means parity instead of real
improvement.
In general, I don't see a significant regression in compilation time with
this patch.
Jingyue
MultiSource/Applications/ALAC/decode/alacconvert-decode
0.6620% 1.2085
MultiSource/Applications/ALAC/encode/alacconvert-encode
-0.8311% 1.2152
MultiSource/Applications/Burg/burg
-2.0242% 1.6797
MultiSource/Applications/ClamAV/clamscan
0.3322% 14.0900
MultiSource/Applications/JM/ldecod/ldecod
1.2913% 6.1877
MultiSource/Applications/JM/lencod/lencod
-0.8998% 13.5259
MultiSource/Applications/SIBsim4/SIBsim4
-2.0553% 1.2845
MultiSource/Applications/SPASS/SPASS
1.9286% 12.9314
MultiSource/Applications/aha/aha
-3.3263% 0.1413
MultiSource/Applications/d/make_dparser
-0.2314% 2.8527
MultiSource/Applications/hbd/hbd
-1.3046% 1.8627
MultiSource/Applications/hexxagon/hexxagon
-1.9634% 0.9932
MultiSource/Applications/kimwitu++/kc
2.6947% 11.3480
MultiSource/Applications/lambda-0.1.3/lambda
-4.0196% 0.6742
MultiSource/Applications/lemon/lemon
10.7558% 0.8693
MultiSource/Applications/lua/lua
-0.4359% 4.0836
MultiSource/Applications/minisat/minisat
0.5924% 0.6246
MultiSource/Applications/obsequi/Obsequi
1.2604% 1.2853
MultiSource/Applications/oggenc/oggenc
8.6571% 3.1373
MultiSource/Applications/sgefa/sgefa
-6.8249% 0.5099
MultiSource/Applications/siod/siod
-1.3471% 1.9227
MultiSource/Applications/spiff/spiff
-4.9501% 1.1919
MultiSource/Applications/sqlite3/sqlite3
4.0138% 11.8989
MultiSource/Applications/treecc/treecc
0.1516% 2.2433
MultiSource/Applications/viterbi/viterbi
2.2571% 0.2614
MultiSource/Benchmarks/7zip/7zip-benchmark
-0.5024% 40.2075
MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000
-0.5554% 7.3818
MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk
0.8925% 0.7619
MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk
-5.4254% 0.3926
MultiSource/Benchmarks/ASC_Sequoia/IRSmk/IRSmk
-2.0022% 0.1848
MultiSource/Benchmarks/BitBench/drop3/drop3
-20.1379% 0.0725
MultiSource/Benchmarks/BitBench/five11/five11
1.0101% 0.0792
MultiSource/Benchmarks/BitBench/uudecode/uudecode
-7.4671% 0.0683
MultiSource/Benchmarks/BitBench/uuencode/uuencode
4.3609% 0.0665
MultiSource/Benchmarks/Bullet/bullet
-0.2186% 28.2692
MultiSource/Benchmarks/Fhourstones-3.1/fhourstones3.1
-2.5487% 0.1334
MultiSource/Benchmarks/Fhourstones/fhourstones
-3.3218% 0.2318
MultiSource/Benchmarks/FreeBench/analyzer/analyzer
-4.4756% 0.3709
MultiSource/Benchmarks/FreeBench/distray/distray
-3.0303% 0.1254
MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow
1.4822% 0.2024
MultiSource/Benchmarks/FreeBench/mason/mason
-1.1378% 0.0791
MultiSource/Benchmarks/FreeBench/neural/neural
-28.4747% 0.2511
MultiSource/Benchmarks/FreeBench/pcompress2/pcompress2
-6.5595% 0.3796
MultiSource/Benchmarks/FreeBench/pifft/pifft
1.1608% 0.9132
MultiSource/Benchmarks/MallocBench/cfrac/cfrac
-4.5783% 1.4962
MultiSource/Benchmarks/MallocBench/espresso/espresso
-0.9815% 5.7258
MultiSource/Benchmarks/MallocBench/gs/gs
-2.1733% 5.4618
MultiSource/Benchmarks/McCat/01-qbsort/qbsort
-8.2553% 0.1708
MultiSource/Benchmarks/McCat/03-testtrie/testtrie
12.8609% 0.1524
MultiSource/Benchmarks/McCat/04-bisect/bisect
-4.7285% 0.2136
MultiSource/Benchmarks/McCat/05-eks/eks
-2.2222% 0.7020
MultiSource/Benchmarks/McCat/08-main/main
-2.9863% 0.3516
MultiSource/Benchmarks/McCat/09-vor/vor
-0.8770% 0.4447
MultiSource/Benchmarks/McCat/12-IOtest/iotest
4.3213% 0.1805
MultiSource/Benchmarks/McCat/15-trie/trie
6.4935% 0.0770
MultiSource/Benchmarks/McCat/17-bintr/bintr
-6.4543% 0.1193
MultiSource/Benchmarks/McCat/18-imp/imp
-4.6539% 0.4319
MultiSource/Benchmarks/MiBench/automotive-basicmath/automotive-basicmath
-4.8374% 0.2522
MultiSource/Benchmarks/MiBench/automotive-bitcount/automotive-bitcount
1.0012% 0.4894
MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan
0.5337% 0.6183
MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg
-1.3854% 5.6805
MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame
-0.5075% 4.4729
MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset
-0.5005% 11.1695
MultiSource/Benchmarks/MiBench/network-dijkstra/network-dijkstra
-12.4476% 0.0715
MultiSource/Benchmarks/MiBench/network-patricia/network-patricia
6.0174% 0.1263
MultiSource/Benchmarks/MiBench/office-ispell/office-ispell
-0.2698% 1.7418
MultiSource/Benchmarks/MiBench/office-stringsearch/office-stringsearch
-3.7461% 0.2536
MultiSource/Benchmarks/MiBench/security-blowfish/security-blowfish
-5.3802% 0.4182
MultiSource/Benchmarks/MiBench/security-rijndael/security-rijndael
-1.7516% 0.4967
MultiSource/Benchmarks/MiBench/security-sha/security-sha
2.0984% 0.1382
MultiSource/Benchmarks/MiBench/telecomm-CRC32/telecomm-CRC32
-13.1902% 0.0652
MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft
2.3671% 0.2070
MultiSource/Benchmarks/MiBench/telecomm-adpcm/telecomm-adpcm
7.9793% 0.0965
MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm
-1.4768% 1.5981
MultiSource/Benchmarks/NPB-serial/is/is
3.1100% 0.0836
MultiSource/Benchmarks/Olden/bh/bh
-1.4403% 0.3541
MultiSource/Benchmarks/Olden/bisort/bisort
-10.3128% 0.1183
MultiSource/Benchmarks/Olden/em3d/em3d
2.1883% 0.2879
MultiSource/Benchmarks/Olden/health/health
-0.7179% 0.2368
MultiSource/Benchmarks/Olden/mst/mst
-7.9195% 0.2235
MultiSource/Benchmarks/Olden/perimeter/perimeter
-1.6620% 0.1444
MultiSource/Benchmarks/Olden/power/power
2.9753% 0.1983
MultiSource/Benchmarks/Olden/treeadd/treeadd
8.5981% 0.1070
MultiSource/Benchmarks/Olden/tsp/tsp
4.1952% 0.2193
MultiSource/Benchmarks/Olden/voronoi/voronoi
3.9962% 0.3128
MultiSource/Benchmarks/PAQ8p/paq8p
-4.7844% 1.5843
MultiSource/Benchmarks/Prolangs-C++/NP/np
-0.9029% 0.0443
MultiSource/Benchmarks/Prolangs-C++/city/city
-1.2080% 1.5066
MultiSource/Benchmarks/Prolangs-C++/deriv1/deriv1
2.8470% 0.2248
MultiSource/Benchmarks/Prolangs-C++/deriv2/deriv2
1.2510% 0.2558
MultiSource/Benchmarks/Prolangs-C++/employ/employ
-0.5156% 0.2909
MultiSource/Benchmarks/Prolangs-C++/family/family
-8.2459% 0.0667
MultiSource/Benchmarks/Prolangs-C++/fsm/fsm
-2.3292% 0.0644
MultiSource/Benchmarks/Prolangs-C++/garage/garage
-0.1292% 0.0774
MultiSource/Benchmarks/Prolangs-C++/life/life
1.3408% 0.0895
MultiSource/Benchmarks/Prolangs-C++/objects/objects
-2.2705% 0.1013
MultiSource/Benchmarks/Prolangs-C++/ocean/ocean
-0.8895% 0.1349
MultiSource/Benchmarks/Prolangs-C++/office/office
-4.3218% 0.2175
MultiSource/Benchmarks/Prolangs-C++/primes/primes
-9.4949% 0.0495
MultiSource/Benchmarks/Prolangs-C++/shapes/shapes
1.1157% 0.2689
MultiSource/Benchmarks/Prolangs-C++/simul/simul
9.7074% 0.0752
MultiSource/Benchmarks/Prolangs-C++/trees/trees
-5.2029% 0.0961
MultiSource/Benchmarks/Prolangs-C++/vcirc/vcirc
-2.8302% 0.0530
MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc
-1.5207% 10.9884
MultiSource/Benchmarks/Prolangs-C/agrep/agrep
-2.4863% 1.5163
MultiSource/Benchmarks/Prolangs-C/allroots/allroots
-6.0264% 0.1593
MultiSource/Benchmarks/Prolangs-C/archie-client/archie
-2.9350% 0.9574
MultiSource/Benchmarks/Prolangs-C/assembler/assembler
-1.5710% 0.8848
MultiSource/Benchmarks/Prolangs-C/bison/mybison
-6.5930% 1.9445
MultiSource/Benchmarks/Prolangs-C/cdecl/cdecl
-1.1713% 0.3415
MultiSource/Benchmarks/Prolangs-C/compiler/compiler
-0.1878% 0.5324
MultiSource/Benchmarks/Prolangs-C/fixoutput/fixoutput
0.9982% 0.1102
MultiSource/Benchmarks/Prolangs-C/football/football
-1.9346% 0.7702
MultiSource/Benchmarks/Prolangs-C/gnugo/gnugo
-3.8533% 1.2379
MultiSource/Benchmarks/Prolangs-C/loader/loader
-3.4824% 0.5054
MultiSource/Benchmarks/Prolangs-C/plot2fig/plot2fig
-4.2088% 1.0478
MultiSource/Benchmarks/Prolangs-C/simulator/simulator
-1.1643% 1.0478
MultiSource/Benchmarks/Prolangs-C/unix-smail/unix-smail
-4.1518% 0.8406
MultiSource/Benchmarks/Prolangs-C/unix-tbl/unix-tbl
-1.8456% 1.4467
MultiSource/Benchmarks/Ptrdist/anagram/anagram
11.2284% 0.1042
MultiSource/Benchmarks/Ptrdist/bc/bc
0.5738% 1.2896
MultiSource/Benchmarks/Ptrdist/ft/ft
-9.3870% 0.3377
MultiSource/Benchmarks/Ptrdist/ks/ks
-0.7924% 0.1893
MultiSource/Benchmarks/Ptrdist/yacr2/yacr2
1.3011% 0.6994
MultiSource/Benchmarks/SciMark2-C/scimark2
-4.1027% 0.6191
MultiSource/Benchmarks/TSVC/ControlFlow-dbl/ControlFlow-dbl
5.3650% 1.2563
MultiSource/Benchmarks/TSVC/ControlFlow-flt/ControlFlow-flt
16.5980% 1.2134
MultiSource/Benchmarks/TSVC/ControlLoops-dbl/ControlLoops-dbl
-2.3300% 1.2618
MultiSource/Benchmarks/TSVC/ControlLoops-flt/ControlLoops-flt
2.0587% 1.2338
MultiSource/Benchmarks/TSVC/CrossingThresholds-dbl/CrossingThresholds-dbl
-2.3312% 1.2483
MultiSource/Benchmarks/TSVC/CrossingThresholds-flt/CrossingThresholds-flt
7.0103% 1.1155
MultiSource/Benchmarks/TSVC/Equivalencing-dbl/Equivalencing-dbl
-11.3610% 1.2719
MultiSource/Benchmarks/TSVC/Equivalencing-flt/Equivalencing-flt
12.9015% 1.1332
MultiSource/Benchmarks/TSVC/Expansion-dbl/Expansion-dbl
10.8477% 1.1053
MultiSource/Benchmarks/TSVC/Expansion-flt/Expansion-flt
1.0403% 1.2496
MultiSource/Benchmarks/TSVC/GlobalDataFlow-dbl/GlobalDataFlow-dbl
5.3418% 1.2449
MultiSource/Benchmarks/TSVC/GlobalDataFlow-flt/GlobalDataFlow-flt
4.4470% 1.2188
MultiSource/Benchmarks/TSVC/IndirectAddressing-dbl/IndirectAddressing-dbl
7.3145% 1.1443
MultiSource/Benchmarks/TSVC/IndirectAddressing-flt/IndirectAddressing-flt
18.5192% 1.0805
MultiSource/Benchmarks/TSVC/InductionVariable-dbl/InductionVariable-dbl
-14.0255% 1.1693
MultiSource/Benchmarks/TSVC/InductionVariable-flt/InductionVariable-flt
4.2940% 1.2599
MultiSource/Benchmarks/TSVC/LinearDependence-dbl/LinearDependence-dbl
12.2398% 1.1912
MultiSource/Benchmarks/TSVC/LinearDependence-flt/LinearDependence-flt
14.9716% 1.1809
MultiSource/Benchmarks/TSVC/LoopRerolling-dbl/LoopRerolling-dbl
-3.1203% 1.2531
MultiSource/Benchmarks/TSVC/LoopRerolling-flt/LoopRerolling-flt
1.7193% 1.2505
MultiSource/Benchmarks/TSVC/LoopRestructuring-dbl/LoopRestructuring-dbl
3.3518% 1.1904
MultiSource/Benchmarks/TSVC/LoopRestructuring-flt/LoopRestructuring-flt
17.4818% 1.0960
MultiSource/Benchmarks/TSVC/NodeSplitting-dbl/NodeSplitting-dbl
9.6001% 1.0927
MultiSource/Benchmarks/TSVC/NodeSplitting-flt/NodeSplitting-flt
0.9135% 1.2479
MultiSource/Benchmarks/TSVC/Packing-dbl/Packing-dbl
-4.8665% 1.2247
MultiSource/Benchmarks/TSVC/Packing-flt/Packing-flt
15.4545% 1.0780
MultiSource/Benchmarks/TSVC/Recurrences-dbl/Recurrences-dbl
10.2826% 1.1252
MultiSource/Benchmarks/TSVC/Recurrences-flt/Recurrences-flt
9.3191% 1.0956
MultiSource/Benchmarks/TSVC/Reductions-dbl/Reductions-dbl
11.2247% 1.1840
MultiSource/Benchmarks/TSVC/Reductions-flt/Reductions-flt
-13.4958% 1.3256
MultiSource/Benchmarks/TSVC/Searching-dbl/Searching-dbl
-8.9187% 1.2356
MultiSource/Benchmarks/TSVC/Searching-flt/Searching-flt
5.0593% 1.1721
MultiSource/Benchmarks/TSVC/StatementReordering-dbl/StatementReordering-dbl
-5.1540% 1.2146
MultiSource/Benchmarks/TSVC/StatementReordering-flt/StatementReordering-flt
7.7742% 1.1744
MultiSource/Benchmarks/TSVC/Symbolics-dbl/Symbolics-dbl
-9.5361% 1.2028
MultiSource/Benchmarks/TSVC/Symbolics-flt/Symbolics-flt
12.2185% 1.1458
MultiSource/Benchmarks/Trimaran/enc-3des/enc-3des
-1.0976% 0.2551
MultiSource/Benchmarks/Trimaran/enc-md5/enc-md5
-3.3930% 0.1621
MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1
-3.3223% 0.0903
MultiSource/Benchmarks/Trimaran/enc-rc4/enc-rc4
0.4754% 0.0631
MultiSource/Benchmarks/Trimaran/netbench-crc/netbench-crc
4.2537% 0.1340
MultiSource/Benchmarks/Trimaran/netbench-url/netbench-url
1.8034% 0.2828
MultiSource/Benchmarks/VersaBench/8b10b/8b10b
-4.7090% 0.1529
MultiSource/Benchmarks/VersaBench/beamformer/beamformer
0.4762% 0.1470
MultiSource/Benchmarks/VersaBench/bmm/bmm
-6.3218% 0.1044
MultiSource/Benchmarks/VersaBench/dbms/dbms
0.9138% 1.9041
MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes
-2.6248% 0.3086
MultiSource/Benchmarks/llubenchmark/llu
-6.4982% 0.0831
MultiSource/Benchmarks/mafft/pairlocalalign
-0.4217% 8.5846
MultiSource/Benchmarks/mediabench/adpcm/rawcaudio/rawcaudio
-8.3725% 0.1063
MultiSource/Benchmarks/mediabench/adpcm/rawdaudio/rawdaudio
9.3248% 0.0933
MultiSource/Benchmarks/mediabench/g721/g721encode/encode
-0.1193% 0.3354
MultiSource/Benchmarks/mediabench/gsm/toast/toast
-3.0290% 1.6177
MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg
-1.8806% 5.6845
MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode
-0.5020% 1.5539
MultiSource/Benchmarks/nbench/nbench
2.1258% 1.0114
MultiSource/Benchmarks/sim/sim
-3.6286% 0.2811
MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4
2.3999% 15.1839
SingleSource/Benchmarks/Adobe-C++/functionobjects
1.3158% 0.3800
SingleSource/Benchmarks/Adobe-C++/loop_unroll
-1.3014% 2.6356
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding
-4.0832% 2.2115
SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant
8.9317% 1.6447
SingleSource/Benchmarks/Adobe-C++/stepanov_abstraction
-0.9164% 0.5238
SingleSource/Benchmarks/Adobe-C++/stepanov_vector
0.0000% 0.7433
SingleSource/Benchmarks/BenchmarkGame/Large/fasta
-6.0820% 0.0707
SingleSource/Benchmarks/BenchmarkGame/fannkuch
-0.5102% 0.0784
SingleSource/Benchmarks/BenchmarkGame/n-body
-2.6196% 0.0878
SingleSource/Benchmarks/BenchmarkGame/nsieve-bits
-5.3448% 0.0580
SingleSource/Benchmarks/BenchmarkGame/partialsums
11.5174% 0.0547
SingleSource/Benchmarks/BenchmarkGame/puzzle
2.4691% 0.0729
SingleSource/Benchmarks/BenchmarkGame/recursive
2.5845% 0.0503
SingleSource/Benchmarks/BenchmarkGame/spectral-norm
1.1084% 0.0812
SingleSource/Benchmarks/CoyoteBench/almabench
7.3996% 0.0946
SingleSource/Benchmarks/CoyoteBench/fftbench
0.7819% 0.3709
SingleSource/Benchmarks/CoyoteBench/huffbench
-3.9965% 0.1151
SingleSource/Benchmarks/CoyoteBench/lpbench
-4.9255% 0.1746
SingleSource/Benchmarks/Dhrystone/dry
-7.4468% 0.0752
SingleSource/Benchmarks/Dhrystone/fldry
-8.1579% 0.0760
SingleSource/Benchmarks/Linpack/linpack-pc
3.1542% 0.2568
SingleSource/Benchmarks/McGill/chomp
3.4219% 0.2221
SingleSource/Benchmarks/McGill/exptree
-6.1940% 0.1227
SingleSource/Benchmarks/McGill/misr
5.5556% 0.0846
SingleSource/Benchmarks/McGill/queens
-2.4602% 0.0691
SingleSource/Benchmarks/Misc-C++-EH/spirit
-0.6575% 3.2852
SingleSource/Benchmarks/Misc-C++/Large/ray
-2.1576% 0.3059
SingleSource/Benchmarks/Misc-C++/Large/sphereflake
-9.0606% 0.3002
SingleSource/Benchmarks/Misc-C++/bigfib
-21.7057% 0.5464
SingleSource/Benchmarks/Misc-C++/mandel-text
-13.9959% 0.0493
SingleSource/Benchmarks/Misc-C++/oopack_v1p8
0.0000% 0.1312
SingleSource/Benchmarks/Misc-C++/stepanov_container
0.4430% 0.6998
SingleSource/Benchmarks/Misc-C++/stepanov_v1p2
-2.8586% 0.1994
SingleSource/Benchmarks/Misc/ReedSolomon
-0.8681% 0.1843
SingleSource/Benchmarks/Misc/dt
2.8391% 0.0634
SingleSource/Benchmarks/Misc/fbench
-8.6188% 0.0905
SingleSource/Benchmarks/Misc/ffbench
1.8559% 0.0916
SingleSource/Benchmarks/Misc/flops
-5.3407% 0.1086
SingleSource/Benchmarks/Misc/flops-1
0.1799% 0.0556
SingleSource/Benchmarks/Misc/flops-2
9.6386% 0.0498
SingleSource/Benchmarks/Misc/flops-3
0.1887% 0.0530
SingleSource/Benchmarks/Misc/flops-4
-7.8365% 0.0587
SingleSource/Benchmarks/Misc/flops-5
-7.9661% 0.0590
SingleSource/Benchmarks/Misc/flops-6
2.1818% 0.0550
SingleSource/Benchmarks/Misc/flops-7
8.2430% 0.0461
SingleSource/Benchmarks/Misc/flops-8
-15.0082% 0.0613
SingleSource/Benchmarks/Misc/fp-convert
-5.9369% 0.0539
SingleSource/Benchmarks/Misc/himenobmtxpa
-1.3627% 0.1908
SingleSource/Benchmarks/Misc/lowercase
-6.9767% 0.0516
SingleSource/Benchmarks/Misc/mandel
-10.4987% 0.0762
SingleSource/Benchmarks/Misc/mandel-2
5.6641% 0.0512
SingleSource/Benchmarks/Misc/matmul_f64_4x4
-5.0435% 0.0575
SingleSource/Benchmarks/Misc/oourafft
-12.8955% 0.2086
SingleSource/Benchmarks/Misc/perlin
-12.2166% 0.0794
SingleSource/Benchmarks/Misc/pi
-9.5745% 0.0470
SingleSource/Benchmarks/Misc/richards_benchmark
-5.3377% 0.0918
SingleSource/Benchmarks/Misc/salsa20
-9.1822% 0.0697
SingleSource/Benchmarks/Misc/whetstone
-1.6129% 0.1054
SingleSource/Benchmarks/Polybench/datamining/correlation/correlation
-4.1626% 0.1033
SingleSource/Benchmarks/Polybench/datamining/covariance/covariance
-0.7455% 0.0939
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/2mm/2mm
-1.2579% 0.0954
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/3mm/3mm
5.3384% 0.1049
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/atax
0.0000% 0.0904
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/bicg
-0.4215% 0.0949
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/cholesky/cholesky
-5.4860% 0.1039
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/doitgen/doitgen
-0.2836% 0.1058
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemm/gemm
-0.1126% 0.0888
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/gemver
-2.3969% 0.1043
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/gesummv
-0.6897% 0.0870
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/mvt/mvt
1.0011% 0.0899
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/symm
-5.3039% 0.0905
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/syr2k/syr2k
0.0000% 0.0925
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/syrk/syrk
-0.3254% 0.0922
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/trisolv
-1.3793% 0.0870
SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/trmm
-1.5873% 0.0882
SingleSource/Benchmarks/Polybench/linear-algebra/solvers/durbin/durbin
7.8109% 0.0973
SingleSource/Benchmarks/Polybench/linear-algebra/solvers/dynprog/dynprog
-10.3622% 0.0994
SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt
-3.7975% 0.1027
SingleSource/Benchmarks/Polybench/linear-algebra/solvers/lu/lu
4.4324% 0.0925
SingleSource/Benchmarks/Polybench/medley/floyd-warshall/floyd-warshall
2.5610% 0.0820
SingleSource/Benchmarks/Polybench/medley/reg_detect/reg_detect
4.9486% 0.1556
SingleSource/Benchmarks/Polybench/stencils/adi/adi
1.2670% 0.1105
SingleSource/Benchmarks/Polybench/stencils/fdtd-2d/fdtd-2d
6.1017% 0.1180
SingleSource/Benchmarks/Polybench/stencils/fdtd-apml/fdtd-apml
0.2287% 0.1312
SingleSource/Benchmarks/Polybench/stencils/jacobi-1d-imper/jacobi-1d-imper
1.6873% 0.0889
SingleSource/Benchmarks/Polybench/stencils/jacobi-2d-imper/jacobi-2d-imper
0.3033% 0.0989
SingleSource/Benchmarks/Polybench/stencils/seidel-2d/seidel-2d
-5.6460% 0.0921
SingleSource/Benchmarks/Shootout-C++/EH/except
1.7874% 0.2126
SingleSource/Benchmarks/Shootout-C++/ackermann
0.0500% 0.2001
SingleSource/Benchmarks/Shootout-C++/ary
-5.9852% 0.2573
SingleSource/Benchmarks/Shootout-C++/ary2
-3.4733% 0.2476
SingleSource/Benchmarks/Shootout-C++/ary3
-1.8468% 0.2545
SingleSource/Benchmarks/Shootout-C++/fibo
3.1595% 0.1994
SingleSource/Benchmarks/Shootout-C++/hash
-4.1590% 0.3823
SingleSource/Benchmarks/Shootout-C++/hash2
1.0340% 0.3965
SingleSource/Benchmarks/Shootout-C++/heapsort
-2.0270% 0.2220
SingleSource/Benchmarks/Shootout-C++/hello
2.0310% 0.1871
SingleSource/Benchmarks/Shootout-C++/lists
1.1895% 0.2522
SingleSource/Benchmarks/Shootout-C++/lists1
0.3384% 0.2955
SingleSource/Benchmarks/Shootout-C++/matrix
-1.2679% 0.2445
SingleSource/Benchmarks/Shootout-C++/methcall
-2.4402% 0.2131
SingleSource/Benchmarks/Shootout-C++/moments
-2.3653% 0.3509
SingleSource/Benchmarks/Shootout-C++/nestedloop
-1.8655% 0.2037
SingleSource/Benchmarks/Shootout-C++/objinst
-0.7036% 0.2132
SingleSource/Benchmarks/Shootout-C++/random
-2.3600% 0.2161
SingleSource/Benchmarks/Shootout-C++/reversefile
-3.9610% 0.3282
SingleSource/Benchmarks/Shootout-C++/sieve
-3.3129% 0.2777
SingleSource/Benchmarks/Shootout-C++/spellcheck
3.7780% 0.3441
SingleSource/Benchmarks/Shootout-C++/strcat
0.7243% 0.2071
SingleSource/Benchmarks/Shootout-C++/sumcol
-3.6092% 0.2272
SingleSource/Benchmarks/Shootout-C++/wc
-1.9048% 0.2310
SingleSource/Benchmarks/Shootout-C++/wordfreq
-3.8384% 0.2970
SingleSource/Benchmarks/Shootout/ackermann
13.6564% 0.0454
SingleSource/Benchmarks/Shootout/ary3
-3.2967% 0.0637
SingleSource/Benchmarks/Shootout/fib2
-9.8174% 0.0438
SingleSource/Benchmarks/Shootout/hash
4.9315% 0.0730
SingleSource/Benchmarks/Shootout/heapsort
-2.5185% 0.0675
SingleSource/Benchmarks/Shootout/hello
-8.6207% 0.0406
SingleSource/Benchmarks/Shootout/lists
-1.2514% 0.0879
SingleSource/Benchmarks/Shootout/matrix
-4.9246% 0.0995
SingleSource/Benchmarks/Shootout/methcall
5.6995% 0.0579
SingleSource/Benchmarks/Shootout/nestedloop
2.2648% 0.0574
SingleSource/Benchmarks/Shootout/objinst
2.2152% 0.0632
SingleSource/Benchmarks/Shootout/random
-1.3093% 0.0611
SingleSource/Benchmarks/Shootout/sieve
0.7737% 0.0517
SingleSource/Benchmarks/Shootout/strcat
-8.2051% 0.0585
SingleSource/Benchmarks/SmallPT/smallpt
-2.2371% 0.1341
SingleSource/Benchmarks/Stanford/Bubblesort
-6.7947% 0.0677
SingleSource/Benchmarks/Stanford/FloatMM
-4.0057% 0.0699
SingleSource/Benchmarks/Stanford/IntMM
-5.5807% 0.0663
SingleSource/Benchmarks/Stanford/Oscar
4.3587% 0.0803
SingleSource/Benchmarks/Stanford/Perm
-0.9506% 0.0526
SingleSource/Benchmarks/Stanford/Puzzle
4.1166% 0.1166
SingleSource/Benchmarks/Stanford/Queens
-10.8470% 0.0673
SingleSource/Benchmarks/Stanford/Quicksort
-3.6395% 0.0577
SingleSource/Benchmarks/Stanford/RealMM
-2.2255% 0.0674
SingleSource/Benchmarks/Stanford/Towers
-5.3296% 0.0713
SingleSource/Benchmarks/Stanford/Treesort
2.4691% 0.0648
SingleSource/Regression/C++/2003-05-14-array-init
-2.6374% 0.0455
SingleSource/Regression/C++/2003-05-14-expr_stmt
-21.2121% 0.0363
SingleSource/Regression/C++/2003-06-08-BaseType
34.6278% 0.0309
SingleSource/Regression/C++/2003-06-08-VirtualFunctions
-6.4972% 0.0354
SingleSource/Regression/C++/2003-06-13-Crasher
21.0356% 0.0309
SingleSource/Regression/C++/2003-08-20-EnumSizeProblem
6.8182% 0.0308
SingleSource/Regression/C++/2003-09-29-NonPODsByValue
-8.8452% 0.0407
SingleSource/Regression/C++/2008-01-29-ParamAliasesReturn
4.4665% 0.0403
SingleSource/Regression/C++/2011-03-28-Bitfield
-0.8830% 0.0453
SingleSource/Regression/C++/BuiltinTypeInfo
-1.4528% 0.0413
SingleSource/Regression/C++/EH/ConditionalExpr
-3.1513% 0.0476
SingleSource/Regression/C++/EH/class_hierarchy
-11.1940% 0.0670
SingleSource/Regression/C++/EH/ctor_dtor_count
-8.2910% 0.0591
SingleSource/Regression/C++/EH/ctor_dtor_count-2
3.9823% 0.0452
SingleSource/Regression/C++/EH/dead_try_block
-15.9193% 0.0446
SingleSource/Regression/C++/EH/exception_spec_test
0.5618% 0.0534
SingleSource/Regression/C++/EH/function_try_block
-1.1605% 0.0517
SingleSource/Regression/C++/EH/inlined_cleanup
-10.0000% 0.0550
SingleSource/Regression/C++/EH/recursive-throw
-6.7941% 0.0471
SingleSource/Regression/C++/EH/simple_rethrow
15.4822% 0.0394
SingleSource/Regression/C++/EH/simple_throw
7.5630% 0.0357
SingleSource/Regression/C++/EH/throw_rethrow_test
1.5873% 0.0441
SingleSource/Regression/C++/fixups
3.2129% 0.0498
SingleSource/Regression/C++/global_ctor
-19.5021% 0.0482
SingleSource/Regression/C++/global_type
-16.6205% 0.0361
SingleSource/Regression/C++/ofstream_ctor
-0.3344% 0.2093
SingleSource/Regression/C++/pointer_member
0.4854% 0.0412
SingleSource/Regression/C++/pointer_method
-10.1449% 0.0414
SingleSource/Regression/C++/pointer_method2
-9.5528% 0.0492
SingleSource/Regression/C++/short_circuit_dtor
-16.9892% 0.0465
SingleSource/Regression/C/2003-05-14-initialize-string
21.4286% 0.0308
SingleSource/Regression/C/2003-05-21-BitfieldHandling
7.2829% 0.0357
SingleSource/Regression/C/2003-05-21-UnionBitfields
-2.3669% 0.0507
SingleSource/Regression/C/2003-05-21-UnionTest
-5.2381% 0.0420
SingleSource/Regression/C/2003-05-22-LocalTypeTest
-4.2184% 0.0403
SingleSource/Regression/C/2003-05-22-VarSizeArray
-6.7989% 0.0353
SingleSource/Regression/C/2003-05-23-TransparentUnion
-1.9704% 0.0406
SingleSource/Regression/C/2003-06-16-InvalidInitializer
-9.1205% 0.0307
SingleSource/Regression/C/2003-06-16-VolatileError
1.7595% 0.0341
SingleSource/Regression/C/2003-10-12-GlobalVarInitializers
-21.4447% 0.0443
SingleSource/Regression/C/2004-02-03-AggregateCopy
7.5843% 0.0356
SingleSource/Regression/C/2004-03-15-IndirectGoto
-16.5072% 0.0418
SingleSource/Regression/C/2004-08-12-InlinerAndAllocas
0.9685% 0.0413
SingleSource/Regression/C/2005-05-06-LongLongSignedShift
1.1730% 0.0341
SingleSource/Regression/C/2008-01-07-LongDouble
-17.0960% 0.0427
SingleSource/Regression/C/ConstructorDestructorAttributes
-6.5617% 0.0381
SingleSource/Regression/C/DuffsDevice
-3.2120% 0.0467
SingleSource/Regression/C/PR10189
-20.1887% 0.0530
SingleSource/Regression/C/PR1386
-9.5122% 0.0410
SingleSource/Regression/C/PR491
15.0485% 0.0412
SingleSource/Regression/C/PR640
-4.8474% 0.0557
SingleSource/Regression/C/badidx
-3.5917% 0.0529
SingleSource/Regression/C/bigstack
8.2474% 0.0582
SingleSource/Regression/C/callargs
14.1230% 0.0439
SingleSource/Regression/C/casts
-10.5000% 0.0600
SingleSource/Regression/C/compare
-5.6000% 0.0500
SingleSource/Regression/C/globalrefs
1.6092% 0.0435
SingleSource/Regression/C/matrixTranspose
-15.5512% 0.0508
SingleSource/Regression/C/pointer_arithmetic
-12.6316% 0.0380
SingleSource/Regression/C/sumarray
-11.9932% 0.0592
SingleSource/Regression/C/sumarray2d
-3.3237% 0.0692
SingleSource/Regression/C/sumarraymalloc
0.9967% 0.0602
SingleSource/Regression/C/test_indvars
2.3669% 0.0507
SingleSource/Regression/C/testtrace
-7.2562% 0.0441
SingleSource/Regression/C/uint64_to_float
3.5889% 0.0613
SingleSource/UnitTests/2002-04-17-PrintfChar
-5.0847% 0.0354
SingleSource/UnitTests/2002-05-02-ArgumentTest
1.7442% 0.0344
SingleSource/UnitTests/2002-05-02-CastTest
-5.9459% 0.0555
SingleSource/UnitTests/2002-05-02-CastTest1
7.5145% 0.0346
SingleSource/UnitTests/2002-05-02-CastTest2
4.4150% 0.0453
SingleSource/UnitTests/2002-05-02-CastTest3
0.3030% 0.0330
SingleSource/UnitTests/2002-05-02-ManyArguments
-1.6018% 0.0437
SingleSource/UnitTests/2002-05-03-NotTest
-3.9906% 0.0426
SingleSource/UnitTests/2002-05-19-DivTest
-0.4963% 0.0403
SingleSource/UnitTests/2002-08-02-CastTest
-9.7902% 0.0429
SingleSource/UnitTests/2002-08-02-CastTest2
-7.2508% 0.0331
SingleSource/UnitTests/2002-08-19-CodegenBug
13.4518% 0.0394
SingleSource/UnitTests/2002-10-09-ArrayResolution
-5.6235% 0.0409
SingleSource/UnitTests/2002-10-12-StructureArgs
-5.9497% 0.0437
SingleSource/UnitTests/2002-10-12-StructureArgsSimple
6.1381% 0.0391
SingleSource/UnitTests/2002-10-13-BadLoad
-4.6729% 0.0321
SingleSource/UnitTests/2002-12-13-MishaTest
-3.4043% 0.0470
SingleSource/UnitTests/2003-04-22-Switch
0.4706% 0.0425
SingleSource/UnitTests/2003-05-02-DependentPHI
3.3573% 0.0417
SingleSource/UnitTests/2003-05-07-VarArgs
-1.0695% 0.0561
SingleSource/UnitTests/2003-05-12-MinIntProblem
-1.6827% 0.0416
SingleSource/UnitTests/2003-05-14-AtExit
2.5057% 0.0439
SingleSource/UnitTests/2003-05-26-Shorts
-0.4630% 0.0432
SingleSource/UnitTests/2003-05-31-CastToBool
-1.7241% 0.0464
SingleSource/UnitTests/2003-05-31-LongShifts
-13.1579% 0.0418
SingleSource/UnitTests/2003-07-06-IntOverflow
11.3744% 0.0422
SingleSource/UnitTests/2003-07-08-BitOpsTest
7.7605% 0.0451
SingleSource/UnitTests/2003-07-09-LoadShorts
10.1449% 0.0483
SingleSource/UnitTests/2003-07-09-SignedArgs
-10.3321% 0.0542
SingleSource/UnitTests/2003-07-10-SignConversions
13.3663% 0.0404
SingleSource/UnitTests/2003-08-05-CastFPToUint
1.3072% 0.0459
SingleSource/UnitTests/2003-08-11-VaListArg
1.2478% 0.0561
SingleSource/UnitTests/2003-08-20-FoldBug
-8.9431% 0.0492
SingleSource/UnitTests/2003-09-18-BitFieldTest
-7.3986% 0.0419
SingleSource/UnitTests/2003-10-13-SwitchTest
-2.0408% 0.0392
SingleSource/UnitTests/2003-10-29-ScalarReplBug
11.3402% 0.0388
SingleSource/UnitTests/2004-02-02-NegativeZero
4.4910% 0.0334
SingleSource/UnitTests/2004-06-20-StaticBitfieldInit
-8.2474% 0.0388
SingleSource/UnitTests/2004-11-28-GlobalBoolLayout
-1.7817% 0.0449
SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls
1.7762% 0.0563
SingleSource/UnitTests/2005-05-12-Int64ToFP
2.5822% 0.0426
SingleSource/UnitTests/2005-05-13-SDivTwo
-6.4748% 0.0417
SingleSource/UnitTests/2005-07-15-Bitfield-ABI
1.7241% 0.0348
SingleSource/UnitTests/2005-07-17-INT-To-FP
9.2308% 0.0390
SingleSource/UnitTests/2005-11-29-LongSwitch
-5.3985% 0.0389
SingleSource/UnitTests/2006-01-23-UnionInit
-14.6293% 0.0499
SingleSource/UnitTests/2006-01-29-SimpleIndirectCall
0.4950% 0.0404
SingleSource/UnitTests/2006-02-04-DivRem
4.5767% 0.0437
SingleSource/UnitTests/2006-12-01-float_varg
17.2932% 0.0399
SingleSource/UnitTests/2006-12-04-DynAllocAndRestore
4.4917% 0.0423
SingleSource/UnitTests/2006-12-07-Compare64BitConstant
3.6036% 0.0444
SingleSource/UnitTests/2006-12-11-LoadConstants
-4.3369% 0.1199
SingleSource/UnitTests/2007-01-04-KNR-Args
3.3264% 0.0481
SingleSource/UnitTests/2007-03-02-VaCopy
-2.5126% 0.0398
SingleSource/UnitTests/2007-04-10-BitfieldTest
-5.6075% 0.0428
SingleSource/UnitTests/2007-04-25-weak
-2.9412% 0.0374
SingleSource/UnitTests/2008-04-18-LoopBug
-3.2020% 0.0406
SingleSource/UnitTests/2008-04-20-LoopBug2
10.8173% 0.0416
SingleSource/UnitTests/2008-07-13-InlineSetjmp
0.6912% 0.0434
SingleSource/UnitTests/2009-04-16-BitfieldInitialization
-11.3546% 0.0502
SingleSource/UnitTests/2009-12-07-StructReturn
-12.7517% 0.0447
SingleSource/UnitTests/2010-05-24-BitfieldTest
-3.9394% 0.0330
SingleSource/UnitTests/AtomicOps
-7.9909% 0.0438
SingleSource/UnitTests/DefaultInitDynArrays
-21.4646% 0.0396
SingleSource/UnitTests/FloatPrecision
9.6774% 0.0372
SingleSource/UnitTests/SignlessTypes/Large/cast
2.1769% 0.0735
SingleSource/UnitTests/SignlessTypes/cast-bug
-13.0000% 0.0400
SingleSource/UnitTests/SignlessTypes/cast2
13.1980% 0.0394
SingleSource/UnitTests/SignlessTypes/ccc
7.9108% 0.0493
SingleSource/UnitTests/SignlessTypes/div
6.6390% 0.0482
SingleSource/UnitTests/SignlessTypes/factor
6.7616% 0.0562
SingleSource/UnitTests/SignlessTypes/rem
-3.7456% 0.1148
SingleSource/UnitTests/SignlessTypes/shr
-7.2954% 0.0562
SingleSource/UnitTests/StructModifyTest
-11.3043% 0.0345
SingleSource/UnitTests/TestLoop
-4.6358% 0.0453
SingleSource/UnitTests/Threads/2010-12-08-tls
13.6951% 0.0387
SingleSource/UnitTests/Threads/tls
-11.0672% 0.0506
SingleSource/UnitTests/Vector/SSE/sse.expandfft
-9.3982% 0.1213
SingleSource/UnitTests/Vector/SSE/sse.isamax
-1.4124% 0.1062
SingleSource/UnitTests/Vector/SSE/sse.shift
-10.0942% 0.0743
SingleSource/UnitTests/Vector/SSE/sse.stepfft
-2.4660% 0.1176
SingleSource/UnitTests/Vector/build
-16.8467% 0.0463
SingleSource/UnitTests/Vector/build2
-4.5694% 0.0569
SingleSource/UnitTests/Vector/constpool
-12.5896% 1.2272
SingleSource/UnitTests/Vector/divides
-12.8151% 0.0476
SingleSource/UnitTests/Vector/multiplies
-6.2810% 0.0605
SingleSource/UnitTests/Vector/simple
-9.1278% 0.0493
SingleSource/UnitTests/Vector/sumarray
-0.7042% 0.0426
SingleSource/UnitTests/Vector/sumarray-dbl
15.2582% 0.0426
SingleSource/UnitTests/Vectorizer/gcc-loops
0.8690% 0.4488
SingleSource/UnitTests/block-byref-cxxobj-test
-2.6786% 0.0336
SingleSource/UnitTests/block-byref-test
4.7619% 0.0315
SingleSource/UnitTests/block-call-r7674133
-5.1515% 0.0330
SingleSource/UnitTests/block-copied-in-cxxobj
8.5873% 0.0361
SingleSource/UnitTests/block-copied-in-cxxobj-1
-21.4876% 0.0363
SingleSource/UnitTests/blockstret
-8.4469% 0.0367
SingleSource/UnitTests/byval-alignment
4.9140% 0.0407
SingleSource/UnitTests/conditional-gnu-ext
3.7534% 0.0373
SingleSource/UnitTests/conditional-gnu-ext-cxx
-2.4938% 0.0401
SingleSource/UnitTests/initp1
3.0166% 0.0663
SingleSource/UnitTests/member-function-pointers
-3.0238% 0.0463
SingleSource/UnitTests/ms_struct-bitfield
-17.6768% 0.0396
SingleSource/UnitTests/ms_struct-bitfield-1
0.9404% 0.0319
SingleSource/UnitTests/ms_struct-bitfield-init
3.9535% 0.0430
SingleSource/UnitTests/ms_struct-bitfield-init-1
-10.4603% 0.0478
SingleSource/UnitTests/ms_struct_pack_layout
-4.7619% 0.0462
SingleSource/UnitTests/ms_struct_pack_layout-1
-16.2437% 0.0394
SingleSource/UnitTests/printargs
-4.2857% 0.0420
SingleSource/UnitTests/stmtexpr
-3.5047% 0.0428
SingleSource/UnitTests/vla
-3.1818% 0.0660
SingleSource/UnitTests/Vector/build
-16.8467% 0.0463
SingleSource/UnitTests/Vector/build2
-4.5694% 0.0569
SingleSource/UnitTests/Vector/constpool
-12.5896% 1.2272
SingleSource/UnitTests/Vector/divides
-12.8151% 0.0476
SingleSource/UnitTests/Vector/multiplies
-6.2810% 0.0605
SingleSource/UnitTests/Vector/simple
-9.1278% 0.0493
SingleSource/UnitTests/Vector/sumarray
-0.7042% 0.0426
SingleSource/UnitTests/Vector/sumarray-dbl
15.2582% 0.0426
SingleSource/UnitTests/Vectorizer/gcc-loops
0.8690% 0.4488
SingleSource/UnitTests/block-byref-cxxobj-test
-2.6786% 0.0336
SingleSource/UnitTests/block-byref-test
4.7619% 0.0315
SingleSource/UnitTests/block-call-r7674133
-5.1515% 0.0330
SingleSource/UnitTests/block-copied-in-cxxobj
8.5873% 0.0361
SingleSource/UnitTests/block-copied-in-cxxobj-1
-21.4876% 0.0363
SingleSource/UnitTests/blockstret
-8.4469% 0.0367
SingleSource/UnitTests/byval-alignment
4.9140% 0.0407
SingleSource/UnitTests/conditional-gnu-ext
3.7534% 0.0373
SingleSource/UnitTests/conditional-gnu-ext-cxx
-2.4938% 0.0401
SingleSource/UnitTests/initp1
3.0166% 0.0663
SingleSource/UnitTests/member-function-pointers
-3.0238% 0.0463
SingleSource/UnitTests/ms_struct-bitfield
-17.6768% 0.0396
SingleSource/UnitTests/ms_struct-bitfield-1
0.9404% 0.0319
SingleSource/UnitTests/ms_struct-bitfield-init
3.9535% 0.0430
SingleSource/UnitTests/ms_struct-bitfield-init-1
-10.4603% 0.0478
SingleSource/UnitTests/ms_struct_pack_layout
-4.7619% 0.0462
SingleSource/UnitTests/ms_struct_pack_layout-1
-16.2437% 0.0394
SingleSource/UnitTests/printargs
-4.2857% 0.0420
SingleSource/UnitTests/stmtexpr
-3.5047% 0.0428
SingleSource/UnitTests/vla
-3.1818% 0.0660
Geomean = 0.9825
I was trying to rebase this diff against the latest version. However, one test case (test/CodeGen/X86/loop-strength-reduce8.ll) failed. The failure is not directly caused by this change in machine sinking but triggered by it. I reduced the test case and filed PR20701 (http://llvm.org/bugs/show_bug.cgi?id=20701). It would be great if someone here can take a look. Many thanks!
PR20776 blocks submitting this diff which is not really the culprit. To move
things forward, I add a flag to use MachinePostDominatorTree only when
specified in the command line, so that people can experiment it. After PR20776
is resolved, I will remove this flag and let MachineSinking always use
MachinePostDominatorTree.
Owen and Jiangning, is this temporary work around OK with you?
Hi Jingyue,
It sounds not a good idea.
The failure exposed by x86 test case is for performance only rather than correctness, right?
If you have measured x86 performance, and make sure it won't generally affect performance, why can't you add //FIXME in test case instead?
Thanks,
-Jiangning
Thanks Jiangning. I think what you said makes sense.
Not combining movl and addl in loop-reduce-strength8.ll does not really affect
its ability to verify LoopStrengthReduce, so I think it's fine to leave a FIXME
in that test case.
Hi Jinyue,
Yes. This is sensible to me, and I think you can commit now.
Thanks,
-Jiangning