Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 37 additions & 15 deletions .github/workflows/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
- '**.cmake'
- 'run-clang-tidy.sh'
- 'run-clang-format.sh'
- '.github/workflows/presubmit.yml'
- '.github/workflows/**'
- '**.clang-tidy'

permissions:
Expand All @@ -34,34 +34,56 @@ jobs:
CLANG_FORMAT_LLVM_INSTALL_DIR: /opt/homebrew/opt/llvm@21

- uses: astral-sh/ruff-action@v3

check_clang_tidy:
name: Check clang-tidy
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Install clang-tidy
run: brew install llvm@21 ninja lld@21
run: brew install llvm@21 lld@21
- name: Run clang-tidy
run: ./run-clang-tidy.sh
env:
CLANG_TIDY_LLVM_INSTALL_DIR: /opt/homebrew/opt/llvm@21

check_cmake_file_lists:
name: Check CMake file lists
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run test sources check
run: |
shopt -s nullglob
(cd test/autoschedulers/adams2019 && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/autoschedulers/anderson2021 && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/autoschedulers/li2018 && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/autoschedulers/mullapudi2016 && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/correctness && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/error && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/failing_with_issue && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/fuzz && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/generator && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/performance && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/runtime && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
(cd test/warning && comm -23 <(ls *.{c,cpp} | sort) <(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) | tee missing_files && [ ! -s missing_files ])
check_dir() {
local dir="$1"
(
cd "$dir" &&
comm -23 \
<(find . -maxdepth 1 -type f \( -name '*.c' -o -name '*.cpp' \) -printf '%f\n' | sort) \
<(grep -P '^\s*#?\s*[A-Za-z0-9_.]+$' CMakeLists.txt | tr -d '# ' | sort) \
| tee missing_files &&
[ ! -s missing_files ]
)
}

check_dir test/autoschedulers/adams2019
check_dir test/autoschedulers/anderson2021
check_dir test/autoschedulers/li2018
check_dir test/autoschedulers/mullapudi2016
check_dir test/correctness
check_dir test/error
check_dir test/failing_with_issue
check_dir test/fuzz
check_dir test/generator
check_dir test/performance
check_dir test/runtime
check_dir test/warning

check_gha_workflows:
name: Check GitHub Actions workflows
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v4

- name: actionlint
uses: raven-actions/actionlint@v2
10 changes: 5 additions & 5 deletions .github/workflows/testing-make.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,21 @@ jobs:
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-$LLVM_VERSION main" | sudo tee /etc/apt/sources.list.d/llvm-$LLVM_VERSION.list
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${LLVM_VERSION} main" | sudo tee "/etc/apt/sources.list.d/llvm-${LLVM_VERSION}.list"
sudo apt-get update
sudo apt-get install -y \
build-essential pkg-config libpng-dev libjpeg-turbo8-dev \
llvm-$LLVM_VERSION-dev clang-$LLVM_VERSION lld-$LLVM_VERSION liblld-$LLVM_VERSION-dev
"llvm-${LLVM_VERSION}-dev" "clang-${LLVM_VERSION}" "lld-${LLVM_VERSION}" "liblld-${LLVM_VERSION}-dev"
elif [ "$RUNNER_OS" = "macOS" ]; then
brew install llvm@$LLVM_VERSION lld@$LLVM_VERSION libjpeg-turbo libpng pkgconf protobuf
brew install "llvm@${LLVM_VERSION}" "lld@${LLVM_VERSION}" libjpeg-turbo libpng pkgconf protobuf
fi

- name: Set up environment
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
echo "LLVM_CONFIG=llvm-config-$LLVM_VERSION" | tee -a "$GITHUB_ENV"
echo "LLVM_CONFIG=llvm-config-${LLVM_VERSION}" | tee -a "$GITHUB_ENV"
elif [ "$RUNNER_OS" = "macOS" ]; then
echo "LLVM_CONFIG=$(brew --prefix llvm@$LLVM_VERSION)/bin/llvm-config" | tee -a "$GITHUB_ENV"
echo "LLVM_CONFIG=$(brew --prefix "llvm@${LLVM_VERSION}")/bin/llvm-config" | tee -a "$GITHUB_ENV"
fi
echo "MAKEFLAGS=-j $(getconf _NPROCESSORS_ONLN)" | tee -a "$GITHUB_ENV"

Expand Down
2 changes: 1 addition & 1 deletion cmake/FindHalide_LLVM.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ if (LLVM_FOUND)
# Homebrew split the LLVM and LLD packages as of version 19, so
# having multiple LLVM versions installed leads to the newest
# LLD being found without this hint.
"${LLVM_INSTALL_PREFIX}/../lld@${LLVM_VERSION_MAJOR}"
"${LLVM_DIR}/../../../../lld@${LLVM_VERSION_MAJOR}"
"${LLVM_DIR}/../lld"
"${LLVM_DIR}/../lib/cmake/lld"
)
Expand Down
Loading