Documentation

Getting Started

BOLT is based on the OpenMP subproject of LLVM for runtime, and thus it uses the same build options provided in LLVM.

To build and test the release version of BOLT, please refer to README.md in the tarball or here.

In this document, we present how to build BOLT together with LLVM (i.e., in-tree build) using source codes from the git repositories.

  1. Get the required tools
  2. Checkout Argobots and build:
    • Refer to the Argobots website for details.
    • Change directory to where you want the argobots directory placed.
    • git clone https://github.com/pmodels/argobots.git
    • cd argobots
    • ./autogen.sh
    • ./configure --prefix=abt_install_dir
    • make -j
    • make install
    • cd ..
  3. Checkout llvm:
    • Change directory to where you want the llvm directory placed.
    • git clone https://github.com/llvm-mirror/llvm.git
  4. Checkout clang:
    • cd llvm/tools
    • git clone git@github.com:llvm-mirror/clang.git
    • cd ../..
  5. Checkout BOLT
    • cd llvm/projects
    • git clone https://github.com/pmodels/bolt.git openmp
    • cd ../..
  6. Build BOLT using Argobots
    • mkdir build-abt
      * Building in the source directory is not supported.
    • cd build-abt
    • cmake ../llvm -G "Unix Makefiles"
      -DCMAKE_INSTALL_PREFIX=bolt_abt_install_dir
      -DLIBOMP_USE_ARGOBOTS=on
      -DLIBOMP_ARGOBOTS_INSTALL_DIR=abt_install_dir
      -DLIBOMP_USE_ITT_NOTIFY=off

      * This is for building all components in debug mode. -DCMAKE_BUILD_TYPE=type (Valid options for type are Debug, Release, RelWithDebInfo, and MinSizeRel. Default is Debug.) can be added for building in a different mode.
    • make -j
    • make install
  7. (Optional) Build BOLT using Pthreads
    • mkdir build-pth
    • cd build-pth
    • cmake ../llvm -G "Unix Makefiles"
      -DCMAKE_INSTALL_PREFIX=bolt_pth_install_dir
    • make -j
    • make install

Different build options can be found at the following: