name: Build MLIR Cache on: workflow_call: inputs: llvm-commit: required: true type: string jobs: build-mlir: runs-on: ubuntu-latest steps: - name: Cache MLIR build id: cache-mlir uses: actions/cache@v4 with: path: onnx-mlir/llvm-project key: mlir-${{ runner.os }}-${{ inputs.llvm-commit }} - name: Install build dependencies if: steps.cache-mlir.outputs.cache-hit != 'true' run: | sudo apt update sudo apt install -y cmake ninja-build build-essential - name: Clone LLVM if: steps.cache-mlir.outputs.cache-hit != 'true' run: | git clone --filter=blob:none --no-checkout https://github.com/llvm/llvm-project.git onnx-mlir/llvm-project cd onnx-mlir/llvm-project git fetch --depth 1 origin ${{ inputs.llvm-commit }} git checkout FETCH_HEAD - name: Build MLIR if: steps.cache-mlir.outputs.cache-hit != 'true' run: | mkdir -p onnx-mlir/llvm-project/build cd onnx-mlir/llvm-project/build cmake -G Ninja ../llvm \ -DLLVM_ENABLE_PROJECTS="mlir;clang" \ -DLLVM_ENABLE_RUNTIMES="openmp" \ -DLLVM_TARGETS_TO_BUILD="host" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DLLVM_ENABLE_RTTI=ON \ -DENABLE_LIBOMPTARGET=OFF \ -DLLVM_ENABLE_LIBEDIT=OFF cmake --build .