Skip to content

Add air-loop-fusion pass to fuse scf.for loops in air.segment (#426) #4

Add air-loop-fusion pass to fuse scf.for loops in air.segment (#426)

Add air-loop-fusion pass to fuse scf.for loops in air.segment (#426) #4

# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
# SPDX-License-Identifier: MIT
name: Build and Test Compiler Only
on:
push:
branches:
- main
pull_request:
types: [assigned, opened, synchronize, reopened, ready_for_review]
workflow_dispatch:
jobs:
build-repo:
name: Build and Test
runs-on: ubuntu-20.04
steps:
- name: Configure Environment
run: echo "$GITHUB_WORKSPACE/llvm/install/bin" >> $GITHUB_PATH
# Clone the repo and its submodules. Do shallow clone to save clone
# time.
- name: Get repo
uses: actions/checkout@v3
with:
fetch-depth: 2
submodules: "true"
- name: Install libboost
run: sudo apt-get install -y libboost-all-dev
- name: Install pip packages
run: sudo pip install psutil pybind11 numpy launchpadlib
- name: Install Ninja
uses: llvm/actions/install-ninja@55d844821959226fab4911f96f37071c1d4c3268
- name: Get Submodule Hash
id: get-submodule-hash
run: echo "::set-output name=hash::$(md5sum $(echo utils/clone-llvm.sh))"
shell: bash
- name: Ccache for C++ compilation
uses: hendrikmuhs/ccache-action@4687d037e4d7cf725512d9b819137a3af34d39b3
with:
key: ${{ runner.os }}-clangreleaseasserts-${{ steps.get-submodule-hash.outputs.hash }}
max-size: 1G
- name: Get cmakeModules
id: clone-cmakeModules
run: |
git clone https://github.com/Xilinx/cmakeModules.git
pushd cmakeModules
git checkout -b air 2c3885644ea115d1d61bbf102abbd41be8ba8427
popd
shell: bash
- name: Get LLVM
id: clone-llvm
run: utils/clone-llvm.sh
shell: bash
- name: Rebuild and Install LLVM
run: utils/github-build-llvm.sh
- name: Rebuild and Install libxaie
run: utils/github-clone-build-libxaie.sh
- name: Get mlir-aie
id: clone-mlir-aie
run: utils/clone-mlir-aie.sh
shell: bash
- name: Rebuild and Install mlir-aie
run: |
mkdir -p mlir-aie/build
mkdir -p mlir-aie/install
pushd mlir-aie/build
cmake .. \
-GNinja \
-DCMAKE_BUILD_TYPE=Debug \
-DAIE_COMPILER=NONE \
-DAIE_LINKER=NONE \
-DHOST_COMPILER=NONE \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DCMAKE_MODULE_PATH=`pwd`/../cmake/modulesXilinx \
-DMLIR_DIR=`pwd`/../../llvm/install/lib/cmake/mlir/ \
-DLLVM_DIR=`pwd`/../../llvm/install/lib/cmake/llvm/ \
-DCMAKE_LINKER=lld \
-DCMAKE_C_COMPILER=clang-12 \
-DCMAKE_CXX_COMPILER=clang++-12 \
-DLLVM_EXTERNAL_LIT=`pwd`/../../llvm/build/bin/llvm-lit \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DLibXAIE_x86_64_DIR=`pwd`/../../aienginev2/install/lib \
-DCMAKE_INSTALL_PREFIX=`pwd`/../install
ninja install
popd
# Build the repo test target in debug mode to build and test.
- name: Build and test (Assert)
run: |
mkdir build_assert
pushd build_assert
cmake .. \
-GNinja \
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../cmake/modules/toolchain_x86_64.cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DCMAKE_MODULE_PATH=`pwd`/../cmakeModules \
-DMLIR_DIR=../llvm/install/lib/cmake/mlir/ \
-DLLVM_DIR=../llvm/install/lib/cmake/llvm/ \
-DAIE_DIR=`pwd`/../mlir-aie/install/lib/cmake/aie/ \
-DLibXAIE_ROOT=`pwd`/../aienginev2/install \
-DAIR_RUNTIME_TARGETS:STRING="x86_64" \
-Dx86_64_TOOLCHAIN_FILE=`pwd`/../cmake/modules/toolchain_x86_64.cmake \
-DLLVM_EXTERNAL_LIT=`pwd`/../llvm/build/bin/llvm-lit \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_INSTALL_PREFIX=install
ninja
ninja check-air-cpp
ninja check-air-mlir
ninja check-air-python
popd
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/aienginev2/install/lib
# Build the repo test target in release mode to build and test.
- name: Build and test (Release)
run: |
mkdir build_release
pushd build_release
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=`pwd`/../cmake/modules/toolchain_x86_64.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DCMAKE_MODULE_PATH=`pwd`/../cmakeModules \
-DMLIR_DIR=../llvm/install/lib/cmake/mlir/ \
-DLLVM_DIR=../llvm/install/lib/cmake/llvm/ \
-DAIE_DIR=`pwd`/../mlir-aie/install/lib/cmake/aie/ \
-DLibXAIE_ROOT=`pwd`/../aienginev2/install \
-DAIR_RUNTIME_TARGETS:STRING="x86_64" \
-Dx86_64_TOOLCHAIN_FILE=`pwd`/../cmake/modules/toolchain_x86_64.cmake \
-DLLVM_EXTERNAL_LIT=`pwd`/../llvm/build/bin/llvm-lit \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_INSTALL_PREFIX=install
make -j$(nproc)
make check-air-cpp check-air-mlir check-air-python
popd
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/aienginev2/install/lib