Awesome
GAP
A utility library to bridge llvm and mlir gaps.
Build & Configure
NOTE: if using the vcpkg preset, VCPKG_ROOT
must be set to the root directory of the vcpkg instance
cmake --preset ninja-multi-vcpkg
cmake --build --preset ninja-multi-vcpkg
Install & Integrate
Simply use cmake install infrastructure:
cmake -DCMAKE_INSTALL_PREFIX:PATH=<path> --build --preset ninja-multi-vcpkg --target install
where installation path might be for example ~/opt/gap
.
To integrate into other cmake
project simply include:
find_package(gap CONFIG REQUIRED)
and point cmake
to gap
install directory:
cmake -Dgap_DIR=~/opt/gap/lib/cmake/gap ...
Test
ctest ./builds/ --preset ninja-multi-vcpkg
Dependencies
Name | Version |
---|---|
Git | Latest |
CMake | 3.21+ |
Clang | 12+ |
ccache | Latest |
Cmake takes care of downloading and building the vcpkg dependencies listed in vcpkg.json
.
Dependencies for development
- pre-commit
pip install pre-commit
- cmake-format
pip install cmakelang
recommended together with vscode cmake-format extension
Structure
-
Core GAP
- contracts
- error handling
- parsing
- logging
- coroutines
- ranges
- benchmarks
- data structures
- cmake utils
-
LLVM GAP
- ranges
- single context library (sc)
- monadic builders
-
MLIR GAP
- parser
- fmt
- single context library (sc)
- ranges
-
Any IR GAP
- serialize/deserialize uniform ir representation