Skip to content

1. Enabling inline for Polygeist Ops 2. fix for unary pre decrement op to have lvalue by reference #1818

1. Enabling inline for Polygeist Ops 2. fix for unary pre decrement op to have lvalue by reference

1. Enabling inline for Polygeist Ops 2. fix for unary pre decrement op to have lvalue by reference #1818

Workflow file for this run

name: Polygeist build and test
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build ${{ matrix.os }} ${{ matrix.compiler }} polymer=${{ matrix.polymer }} pluto ${{ matrix.pluto-build }} mlir ${{ matrix.mlir-build }} polygeist ${{ matrix.polygeist-build }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
pluto-build: ["Release"] # Only Release supported currently
mlir-build: ["Release"] #, "Debug"] # "RelWithDebInfo"
polygeist-build: ["Release", "Debug"] #, "Debug"] # "RelWithDebInfo"
polymer: ["0", "1"]
os: [ubuntu-22.04]
compiler: [gcc, clang]
cxxcompiler: [g++, clang++]
exclude:
- compiler: gcc
cxxcompiler: clang++
- compiler: clang
cxxcompiler: g++
timeout-minutes: 360
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
path: src
submodules: 'recursive'
- name: add dependencies
run: sudo apt-get install -y llvm-15-tools ninja-build libbison-dev libtool libgmp-dev #libflex-dev cmake binutils-gold binutils binutils-dev ${{ matrix.compiler }} ${{ matrix.linker-pkg }}
- name: Cache Pluto
id: cache-pluto
uses: actions/cache@v3
with:
path: pluto-build
key: ${{ matrix.pluto-build }}-${{ matrix.os }}-pluto-${{ matrix.polymer }}
- name: Pluto build
if: steps.cache-pluto.outputs.cache-hit != 'true' && matrix.polymer == '1'
run: |
mkdir -p pluto-build
PATH="/usr/lib/llvm-15/bin/:$PATH" src/tools/polymer/build_polymer_deps.sh $(pwd)/pluto-build
sleep 1s
- uses: actions/cache/save@v3
if: steps.cache-pluto.outputs.cache-hit != 'true'
with:
path: pluto-build
key: ${{ matrix.pluto-build }}-${{ matrix.os }}-pluto-${{ matrix.polymer }}
- name: Read LLVM commit
id: getversion
run: echo "version=$(cat src/.git/modules/llvm-project/HEAD)" >> $GITHUB_OUTPUT
- name: Cache MLIR
id: cache-mlir
uses: actions/cache@v3
with:
path: mlir-build
key: ${{ matrix.mlir-build }}-${{ matrix.os }}-mlir-${{ steps.getversion.outputs.version }}
- name: MLIR build
if: steps.cache-mlir.outputs.cache-hit != 'true'
run: |
mkdir mlir-build
cd mlir-build
CYMBL=OFF cmake ../src/llvm-project/llvm -GNinja -DLLVM_ENABLE_PROJECTS="llvm;clang;mlir" -DCMAKE_BUILD_TYPE=${{ matrix.mlir-build }} -DCMAKE_C_COMPILER=/bin/clang -DCMAKE_CXX_COMPILER=/bin/clang++ -DCMAKE_ASM_COMPILER=/bin/clang -DCMAKE_CXX_FLAGS="-Wno-c++11-narrowing"
#cymbld & disown
sleep 1
CYMBL=OFF ninja
- uses: actions/cache/save@v3
if: steps.cache-mlir.outputs.cache-hit != 'true'
with:
path: mlir-build
key: ${{ matrix.mlir-build }}-${{ matrix.os }}-mlir-${{ steps.getversion.outputs.version }}
- name: mkdir
run: mkdir build
- name: cmake
run: |
cd build
ls ../mlir-build/lib/cmake/clang
cmake ../src/ -GNinja -DMLIR_DIR=`pwd`/../mlir-build/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=`pwd`/../mlir-build/bin/llvm-lit -DClang_DIR=`pwd`/../mlir-build/lib/cmake/clang -DCMAKE_BUILD_TYPE=${{ matrix.polygeist-build }} -DCMAKE_C_COMPILER=${{matrix.compiler}} -DCMAKE_CXX_COMPILER=${{matrix.cxxcompiler}} -DPOLYGEIST_ENABLE_POLYMER=${{ matrix.polymer }} -DPOLYMER_DEP_DIR=$(pwd)/../pluto-build/
- name: test cgeist
run: |
cd build
ninja -j1
ninja check-polygeist-opt
ninja check-cgeist
- name: test polymer
if: matrix.polymer == '1'
run: |
cd build
ninja
PATH="`pwd`/../mlir-build/bin:$PATH" LLVM_SYMBOLIZER_PATH="`pwd`/../mlir-build/bin/llvm-symbolizer" ninja check-polymer