LLVM Compiler

LLVM logo, a wyvern.

The LLVM compiler infrastructure project is a set of compiler and toolchain technologies, which can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes.

InstallationEdit

Installation

Main ComponentsEdit

LLVM contains a list components

OpenMP supportEdit

see more at OpenMP Support

With the release of Clang 3.8.0, OpenMP 3.1 support is enabled in Clang by default, and the OpenMP runtime is therefore built as a normal part of the Clang build, and distributed with the binary distributions. You do not, therefore, need explicitly to check out this code, or build it out of tree; a normal Clang check out and build will automatically include building these runtime libraries.

https://openmp.llvm.org/


cmake -G Ninja -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$LLVM_PATH -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;openmp" -DCLANG_BUILD_EXAMPLES=1 $LLVM_SRC/llvm

ninja install -j8 -l8

Development SupportEdit

Code review of LLVM is handled by Phabricator https://reviews.llvm.org/. Regression tests are run by Buildbot http://lab.llvm.org:8011/ using test suite under https://github.com/llvm/llvm-test-suite .


LLVM uses Buildbot to run some regression tests.

Their website has JSON API: http://lab.llvm.org:8011/json/help

Take the OpenMP testing’s API results as an example

This get request will get a json file, with links to each step’s logs among other information. You check the log files from the links to see the command lines used. For example: here is the log file for the configuring step: