To build MLIR, follow the official guide: Getting Started.
Set up some environment variables to make our life easier when working with MLIR:
1
2
| export LLVM_PROJ_HOME="/path/to/llvm-project"
export MLIR_HOME="$LLVM_PROJ_HOME/mlir"
|
Write a script to help build MLIR from source:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # @file $LLVM_PROJ_HOME/scripts/build-mlir.sh
cd $LLVM_PROJ_HOME
CC=clang CXX=clang++ \
cmake -S . -B ./build -G Ninja ./llvm \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS=mlir \
-DLLVM_BUILD_EXAMPLES=ON \
-DLLVM_TARGETS_TO_BUILD="Native;NVPTX;AMDGPU" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DLLVM_ENABLE_LLD=ON
cmake --build . --target check-mlir -j $(nproc)
|
Now we can run the script to build the MLIR easily:
1
| bash $LLVM_PROJ_HOME/scripts/build-mlir.sh
|
The generated binary files are in $LLVM_PROJ_HOME/build/bin.
It would be more convenient to add this directory to PATH when working with MLIR:
1
| export PATH="$LLVM_PROJ_HOME/build/bin:$PATH"
|