[LLVMdev] Enabling the SLP vectorizer by default for -O3

Chris Lattner clattner at apple.com
Sun Jul 14 21:52:47 PDT 2013


On Jul 13, 2013, at 11:30 PM, Nadav Rotem <nrotem at apple.com> wrote:

> Hi, 
> 
> LLVM’s SLP-vectorizer is a new pass that combines similar independent instructions in a straight-line code.  It is currently not enabled by default, and people who want to experiment with it can use the clang command line flag “-fslp-vectorize”.  I ran LLVM’s test suite with and without the SLP vectorizer on a Sandybridge mac (using SSE4, w/o AVX).  Based on my performance measurements (below) I would like to enable the SLP-vectorizer by default on -O3.  I would like to hear what others in the community think about this and give other people the opportunity to perform their own performance measurements. 

This looks great Nadav.  The performance wins are really big.  How you investigated the bh and bullet regression though?  We should at least understand what is going wrong there.  bh is pretty tiny, so it should be straight-forward.  It would also be really useful to see what the code size and compile time impact is.

-Chris

> 
> — Performance Gains — 
> SingleSource/Benchmarks/Misc/matmul_f64_4x4 -53.68%
> MultiSource/Benchmarks/Olden/power/power  -18.55%
> MultiSource/Benchmarks/TSVC/LoopRerolling-flt/LoopRerolling-flt -14.71%
> SingleSource/Benchmarks/Misc/flops-6  -11.02%
> SingleSource/Benchmarks/Misc/flops-5  -10.03%
> MultiSource/Benchmarks/TSVC/LinearDependence-flt/LinearDependence-flt -8.37%
> External/Nurbs/nurbs  -7.98%
> SingleSource/Benchmarks/Misc/pi -7.29%
> External/SPEC/CINT2000/252_eon/252_eon  -5.78%
> External/SPEC/CFP2006/444_namd/444_namd -4.52%
> External/SPEC/CFP2000/188_ammp/188_ammp -4.45%
> MultiSource/Applications/SIBsim4/SIBsim4  -3.58%
> MultiSource/Benchmarks/TSVC/LoopRerolling-dbl/LoopRerolling-dbl -3.52%
> SingleSource/Benchmarks/Misc-C++/Large/sphereflake  -2.96%
> MultiSource/Benchmarks/TSVC/LinearDependence-dbl/LinearDependence-dbl -2.75%
> MultiSource/Benchmarks/VersaBench/beamformer/beamformer -2.70%
> MultiSource/Benchmarks/TSVC/NodeSplitting-dbl/NodeSplitting-dbl -1.95%
> SingleSource/Benchmarks/Misc/flops  -1.89%
> SingleSource/Benchmarks/Misc/oourafft -1.71%
> MultiSource/Benchmarks/mafft/pairlocalalign -1.16%
> External/SPEC/CFP2006/447_dealII/447_dealII -1.06%
> 
> — Regressions — 
> MultiSource/Benchmarks/Olden/bh/bh  22.47%
> MultiSource/Benchmarks/Bullet/bullet  7.31%
> SingleSource/Benchmarks/Misc-C++-EH/spirit  5.68%
> SingleSource/Benchmarks/SmallPT/smallpt 3.91%
> 
> Thanks,
> Nadav
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list