1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking Benchmarking Platform
Phoromatic Test Orchestration

Apple, Google Agree On More SLP Vectorization

Compiler

Published on 28 July 2013 10:53 AM EDT
Written by Michael Larabel in Compiler
5 Comments

After making more widespread use of the Loop Vectorizer, developers at Apple in Google are at least agreeing that LLVM's SLP Vectorizer should be more widely-used as well.

The LLVM SLP Vectorizer was covered earlier this year on Phoronix (and benchmarked) with its premiere in LLVM 3.3. The SLP Vectorizer is about "Superworld-Level Parallelism" and works towards vectorizing straight-line code over LLVM's already present and proven Loop Vectorizer. The SLP Vectorizer can vectorize memory access, arithmetic operations, comparison operations, and other select operations.

For now in LLVM (3.3 and SVN), the SLP Vectorizer isn't the default but must be enabled via the -fslp-vectorize and -fslp-vectorize-aggressive compiler switches for LLVM/Clang. However, LLVM/Clang developers have been discussing enabling this option for at least the -O3 optimization level.

Earlier this month I wrote initially of the discussion about enabling the LLVM SLP Vectorizer. Apple's Nadav Rotem on Sunday morning reignited the discussion with a new mailing list post to highlight their latest test data.

Nadav Rotem wrote, "As you can see [from the new compiler benchmark results], there is a small number of compile time regressions, a single major runtime *regression, and many performance gains. There is a tiny increase in code size: 30k for the whole test-suite. Based on the numbers below I would like to enable the SLP-vectorizer by default for -O3."

Google's Chandler Carruth followed up with, "I also have some benchmark data. It confirms much of what you posted -- binary size increase is essentially 0, performance increases across the board. It looks really good to me. However, there was one crash that I'd like to check if it still fires. Will update later today (feel free to ping me if you don't hear anything.). That said, why -O3? I think we should just enable this across the board, as it doesn't seem to cause any size regression under any mode, and the compile time hit is really low."

So it seems many are in agreement with enabling the SLP Vectorizer by default for the -O3 optimization level but it's possible that the straight-line code vectorizer could also be enabled for other optimization levels too if this Google compiler engineer gets his way. This change is likely for LLVM/Clang 3.4, which will likely be released around the end of the calendar year.

Coming up soon will be new LLVM 3.4 SVN benchmarks on Phoronix while for now you can see our early benchmark results that are quite positive towards improved performance in LLVM/Clang 3.4. LLVM 3.4 is also really important for AMD R600 GPU users.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux News
  1. At Least Two Ubuntu Phone Announcements Expected In June
  2. Russia's Baikal Chips End Up Going For A MIPS CPU
  3. Mesa Git OpenGL Tests With Intel Ivy Bridge Graphics
  4. Blender 2.75 Allows For AMD OpenCL Support
  5. GNOME's Mutter 3.17.2 Adds X11/Wayland Clipboard Interoperation
  6. Wayland 1.8 RC2 Arrives Along With New Weston Compositor Release
  7. LLVM 3.7 Is Planned For A Late August Release
  8. The OpenGL ES 3.1 Foundation Is Being Laid In Mesa
  9. There Are 140k Benchmark Results So Far On LinuxBenchmarking.com
  10. LLVM 3.6.1 Brings R600 & MIPS Fixes
Latest Articles & Reviews
  1. Opening The Gates To Our Daily Open-Source Linux Benchmark Results
  2. The Latest Features For Linux Performance Management + Benchmark Monitoring
  3. Noctua NH-U12DX i4 + NF-F12
  4. Btrfs RAID 0/1 Benchmarks On The Linux 4.1 Kernel
Most Viewed News This Week
  1. The Linux 4.0 EXT4 RAID Corruption Bug Has Been Uncovered
  2. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  3. Systemd 220 Has Finally Been Released
  4. Microsoft Open-Sources The Windows Communication Foundation
  5. Zapcc Claims To Be A "Much Faster C++ Compiler"
  6. LibreOffice 5.0 Beta 1 Released
  7. Another HTTPS Vulnerability Rattles The Internet
  8. LibreOffice 5.0 Open-Source Office Suite Has Been Branched