🚨 This is an early-stage project. All details are subject to arbitrary changes. 🚨
Note that the main
branch tracks the current HEAD of LLVM
and so it is likely to be incompatible with any past releases. We are planning to
provide release-specifi branches in the future, but only once the API stabilizes.
For now your best bet is to develop against MLIR built from source. See the
Building MLIR from source section for guidance.
The only prerequisite for building mlir-hs is that you have MLIR installed
somewhere, and the llvm-config
binary from that installation is available
in your PATH
(a good way to verify this is to run which llvm-config
).
If that's looking reasonable, we recommend using Stack
for development. To build the project simply run stack build
, while the test
suite can be executed using stack test
.
The instructions below assume that you have cmake
and ninja
installed.
You should be able to get them from your favorite package manager.
-
Clone the latest LLVM code (or use
git pull
if you cloned it before)git clone https://github.com/llvm/llvm-project cd llvm-project
-
Create a temporary build directory
mkdir build && cd build
-
Configure the build using CMake. Remember to replace
$PREFIX
with the directory where you want MLIR to be installed. See LLVM documentation for extended explanation and other potentially interesting build flags.cmake ../llvm \ -G Ninja \ # Use the Ninja build system -DLLVM_ENABLE_PROJECTS=mlir \ # Build MLIR -DCMAKE_INSTALL_PREFIX=$PREFIX \ # Install prefix -DLLVM_BUILD_LLVM_DYLIB=ON \ # Build the dynamic library -DLLVM_BUILD_EXAMPLES=OFF # Save some time
For development purposes we additionally recommend using
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_ASSERTIONS=ON
to retain debug information and enable internal LLVM assertions. -
Build and install MLIR. Note that it uses the installation prefix specified in the previous step.
ninja install
Contributions of all kinds are welcome! If you're planning to implement a larger feature, consider posting an issue so that we can discuss it before you put in the work.
See the LICENSE file.
mlir-hs is an early-stage project, not an official Google product.