Skip to content

Add topk operator

Add topk operator #46

Workflow file for this run

# (c) Copyright 2021 Xilinx, Inc. All Rights reserved.
# (c) Copyright 2022 - 2024 Advanced Micro Devices, Inc. All Rights reserved.
name: Build and Test
on:
push:
branches:
- main
pull_request:
types: [assigned, opened, synchronize, reopened]
workflow_dispatch:
jobs:
# Build repo and run its tests.
build-repo:
name: Build and Test
runs-on: ubuntu-latest
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@v2
with:
fetch-depth: 2
submodules: "true"
- name: Hello world action step
uses: ./.github/actions/build-with-llvm/ # Uses an action in the root directory
id: hello
with:
who-to-greet: 'Mona the Octocat'
# We'll be running clang-tidy later in this flow.
# - name: Install clang-tidy
# run: |
# sudo apt-get install -y clang-tidy-9
# sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy \
# /usr/bin/clang-tidy-9 100
# - name: Install libboost
# run: sudo apt-get install -y libboost-all-dev
# - name: Install psutil
# run: sudo pip install psutil
# # --------
# # Restore LLVM from cache and build if it's not in there.
# # --------
# - name: Get cmakeModules
# id: clone-cmakeModules
# run: git clone --depth 1 https://github.com/Xilinx/cmakeModules.git
# shell: bash
# - name: Get LLVM
# id: clone-llvm
# run: utils/clone-llvm.sh
# shell: bash
# # Extract the LLVM submodule hash for use in the cache key.
# - name: Get LLVM Hash
# id: get-llvm-hash
# run: |
# cd llvm
# echo "::set-output name=hash::$(git rev-parse @:./llvm)"
# shell: bash
# # Try to fetch LLVM from the cache.
# - name: Cache LLVM
# id: cache-llvm
# uses: actions/cache@v2
# with:
# path: llvm
# key: ${{ runner.os }}-llvm-install-${{ steps.get-llvm-hash.outputs.hash }}
# # Build LLVM if we didn't hit in the cache. Even though we build it in
# # the previous job, there is a low chance that it'll have been evicted by
# # the time we get here.
# - name: Rebuild and Install LLVM
# if: steps.cache-llvm.outputs.cache-hit != 'true'
# run: utils/build-llvm.sh
# --------
# Build and test repo in both debug and release mode.
# --------
# Build the repo test target in debug mode to build and test.
# - name: Build (Assert)
# run: |
# mkdir build_assert
# cd build_assert
# cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \
# -DLLVM_ENABLE_ASSERTIONS=ON \
# -DCMAKE_MODULE_PATH=`pwd`/../cmakeModules \
# -DMLIR_DIR=/build/build/lib/cmake/mlir/ \
# -DLLVM_DIR=/build/build/lib/cmake/llvm/ \
# -DCMAKE_LINKER=lld \
# -DCMAKE_C_COMPILER=clang \
# -DCMAKE_CXX_COMPILER=clang++ \
# -DLLVM_EXTERNAL_LIT=/build/build/bin/llvm-lit \
# -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
# make -j$(nproc)
# Build the repo test target in release mode to build and test.
# - name: Build (Release)
# run: |
# mkdir build_release
# cd build_release
# cmake .. \
# -DCMAKE_BUILD_TYPE=Release \
# -DLLVM_ENABLE_ASSERTIONS=OFF \
# -DCMAKE_MODULE_PATH=../cmakeModules \
# -DMLIR_DIR=../llvm/install/lib/cmake/mlir/ \
# -DLLVM_DIR=../llvm/install/lib/cmake/llvm/ \
# -DCMAKE_LINKER=lld \
# -DCMAKE_C_COMPILER=clang \
# -DCMAKE_CXX_COMPILER=clang++ \
# -DLLVM_EXTERNAL_LIT=`pwd`/../llvm/build/bin/llvm-lit
# make -j$(nproc)
# # --------
# # Lint the code.
# # -------
# # Choose the git commit to diff against for the purposes of linting.
# # Since this workflow is triggered on both pushes and pull requests, we
# # have to determine if the pull request target branch is set (which it
# # will only be on the PR triggered flow). If it's not, then compare
# # against the last commit.
# - name: choose-commit
# if: ${{ always() }}
# env:
# # Base ref is the target branch, in text form (not hash)
# PR_BASE: ${{ github.base_ref }}
# run: |
# # Run clang-format
# if [[ -z "$PR_BASE" ]]; then
# DIFF_COMMIT_NAME="HEAD^"
# else
# DIFF_COMMIT_NAME="$PR_BASE"
# fi
# echo "DIFF_COMMIT_NAME=$DIFF_COMMIT_NAME" >> $GITHUB_ENV
# # Since we did a shallow fetch for this repo, we must fetch the commit
# # upon which we be diff'ing. The last step set the ref name in the
# # $DIFF_COMMIT_NAME environment variable. When running the fetch, resolve
# # it to the commit hash and pass that hash along to subsequent steps.
# - name: git fetch base commit
# continue-on-error: true
# run: |
# if [[ ! "$DIFF_COMMIT_NAME" == *"HEAD"* ]]; then
# git fetch --recurse-submodules=no origin $DIFF_COMMIT_NAME
# DIFF_COMMIT_SHA=$( git rev-parse origin/$DIFF_COMMIT_NAME )
# else
# DIFF_COMMIT_SHA=$( git rev-parse $DIFF_COMMIT_NAME )
# fi
# echo "DIFF_COMMIT=$DIFF_COMMIT_SHA" >> $GITHUB_ENV
# # Run 'git clang-format', comparing against the target commit hash. If
# # clang-format fixed anything, fail and output a patch.
# - name: clang-format
# if: ${{ always() }}
# run: |
# # Run clang-format
# git clang-format-11 $DIFF_COMMIT
# git diff --ignore-submodules > clang-format.patch
# if [ -s clang-format.patch ]; then
# echo "Clang-format found formatting problems in the following " \
# "files. See diff in the clang-format.patch artifact."
# git diff --ignore-submodules --name-only
# git checkout .
# exit 1
# fi
# echo "Clang-format found no formatting problems"
# exit 0
# # Run clang-tidy against only the changes. The 'clang-tidy-diff' script
# # does this if supplied with the diff.
# - name: clang-tidy
# if: ${{ always() }}
# run: |
# git diff -U0 $DIFF_COMMIT | \
# clang-tidy-diff-9.py -path build_assert -p1 -fix
# git diff --ignore-submodules > clang-tidy.patch
# if [ -s clang-tidy.patch ]; then
# echo "Clang-tidy problems in the following files. " \
# "See diff in the clang-tidy.patch artifact."
# git diff --ignore-submodules --name-only
# git checkout .
# exit 1
# fi
# echo "Clang-tidy found no problems"
# exit 0
# # Upload the format and tidy patches to an artifact (zip'd) associated
# # with the workflow run. Only run this on a failure.
# - name: Upload format and tidy patches
# uses: actions/upload-artifact@v2
# continue-on-error: true
# if: ${{ failure() }}
# with:
# name: clang-format-tidy-patches
# path: clang-*.patch
# # Unfortunately, artifact uploads are always zips so display the diff as
# # well to provide feedback at a glance.
# - name: clang format and tidy patches display
# if: ${{ failure() }}
# continue-on-error: true
# run: |
# # Display patches
# if [ ! -z clang-format.patch ]; then
# echo "Clang-format patch"
# echo "================"
# cat clang-format.patch
# echo "================"
# fi
# if [ ! -z clang-tidy.patch ]; then
# echo "Clang-tidy patch"
# echo "================"
# cat clang-tidy.patch
# echo "================"
# fi