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.org

Looping Through LLVM's New Loop Vectorizer

Compiler

Published on 08 December 2012 09:21 AM EST
Written by Michael Larabel in Compiler
Comment On This Article

Premiering with LLVM 3.2, which will debut later this month, is an automatic loop vectorizer. I've already delivered benchmarks of LLVM's new automatic loop vectorizer, but here's more details on this new LLVM compiler feature.

The LLVM Loop Vectorizer is the second vectorizer for the compiler infrastructure after its Basic Block Vectorizer for dealing with straight-line code. The Loop Vectorizer is meant to widen instructions in an original loop for operating on multiple consecutive loop iterations. As mentioned in the earlier Phoronix articles on the subject, this feature isn't enabled by default with the forthcoming LLVM 3.2 but can be flipped on via the -mllvm -vectorize-loops compiler switches.

On the LLVM Blog is a new posting from yesterday that goes into detail about LLVM's Loop Vectorizer. The posting also mentions that for the LLVM 3.3 release in 2013 they will be aiming to have this vectorizer enabled by default. The blog post covers a few examples of how LLVM can now vectorize different complex loops.

The post also shares that there's more work going forward:

The Loop Vectorizer is a target independent IR-level optimization that depends on target-specific information from the different backends. It needs to select the optimal vector width and to decide if vectorization is worthwhile. Users can force a certain vector width using the command line flag "-mllvm -force-vector-width=X", where X is the number of vector elements. At the moment, only the X86 backend provides detailed cost information, while other targets use a less accurate method.

The work on the Loop Vectorizer is not complete and the vectorizer has a long way to go. We plan to add additional vectorization features such as automatic alignment of buffers, vectorization of function calls and support for user pragmas. We also plan to improve the quality of the generated code.
Read about this new LLVM 3.2 feature at blog.llvm.org. Also to be found in this month's LLVM/Clang/DragonEgg 3.2 release is better PowerPC compiler support, Polly improvements, and much more.

Latest Linux Hardware Reviews
  1. 13-Way Low-End GPU Comparison With AMD's AM1 Athlon
  2. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  3. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  4. Overclocking The AMD AM1 Athlon & Sempron APUs
Latest Linux Articles
  1. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  2. AMD OpenCL Performance With AM1 Kabini APUs
  3. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  4. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
Latest Linux News
  1. Git 2.0 Test Releases Begin With Many Changes
  2. Wine 1.7.17 Works On Its Task Scheduler, C Run-Time
  3. The Improv ARM Board Still Isn't Shipping; Riding A Dead Horse?
  4. Debian To Maintain 6.0 Squeeze As An LTS Release
  5. Wasteland 2 Is Finally Released For Linux Gamers
  6. FreeBSD Advances For ARM, Bhyve, Clang
  7. Ubuntu 14.04 LTS "Trusty Tahr" Officially Released
  8. Ubuntu 12.04 LTS vs. 14.04 LTS Server Benchmarks
  9. QEMU 2.0 Released With ARM, x86 Enhancements
  10. Running The Unity 8 Preview Session On Ubuntu 14.04 LTS
  11. R600 Gallium3D Disables LLVM Back-End By Default
  12. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
Latest Forum Discussions
  1. Suggestions about how to make a Radeon HD 7790 work decently?
  2. The GNOME Foundation Is Running Short On Money
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. Radeon 8000M problematic on Linux?
  5. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  6. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  7. Suspected PHP Proxy Issue
  8. Change installation destination from home directory