Skip to content

mppf/llvm-pgas

 
 

Repository files navigation

llvm-pgas

LLVM optimizations for PGAS programs

This repository enables an LLVM based compiler to optimize communication for PGAS programs. PGAS is Partitioned Global Address Space. PGAS languages and libraries typically support GET and PUT operations on remote memory. These GET and PUT operations might be supported by hardware and are conceptually similar to load and store - but for memory not local to a machine. Using the software in this repository, the GET and PUT operations will be represented as a kind of load or store so that LLVM optimizations can apply to remove communication.

Build and Test Instructions

Prerequisites

  • cmake
  • ninja
# Download LLVM 3.7
git clone http://llvm.org/git/llvm.git
pushd llvm
git checkout release_37
mkdir -p build/Release
mkdir -p install
cd build/Release/
cmake ../.. -GNinja -DLLVM_ENABLE_CXX11=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=`pwd`/../install -DLLVM_ENABLE_ASSERTIONS=ON
ninja
ninja install
popd

# Back in the llvm-pgas directory
mkdir build
cmake .. -DLLVM_ROOT=`pwd`/llvm/install -DLLVM_SRC=`pwd`/llvm
make
make check

About

LLVM optimizations for PGAS programs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 86.7%
  • LLVM 11.0%
  • CMake 1.7%
  • C 0.6%