Skip to content

WIP: [ci] Add tests for OpenMP #75

WIP: [ci] Add tests for OpenMP

WIP: [ci] Add tests for OpenMP #75

name: Build and Test OpenMP
on:
push:
paths:
## - 'clang/lib/AST/*OpenMP*'
# - 'clang/lib/Sema/*OpenMP*'
# - 'clang/lib/CodeGen/*OpenMP*'
# - 'openmp/**'
# - '.github/workflows/openmp-build-and-test.yaml'
# pull_request:
# paths:
# - 'clang/lib/AST/*OpenMP*'
# - 'clang/lib/Sema/*OpenMP*'
# - 'clang/lib/CodeGen/*OpenMP*'
# - 'openmp/**'
# - '.github/workflows/openmp-build-and-test.yaml'
permissions:
contents: read # Default everything to read-only
jobs:
windows-msvc:
runs-on: windows-latest
steps:
- name: Install dependencies
run: |
choco install -y ninja
# We need a newer llvm-lib, in order to build the OpenMP interface library
choco install -y llvm --version=19.1.0
- uses: actions/checkout@v4
- name: Set up the MSVC dev environment
uses: ilammy/msvc-dev-cmd@v1
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1
with:
max-size: 700M
key: clangcl-19
variant: sccache
- name: Build and test
run: |
mkdir build
cd build
cmake ../llvm `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DLLVM_TARGETS_TO_BUILD=X86 `
-DLLVM_ENABLE_PROJECTS="clang;openmp" `
-DCMAKE_C_COMPILER=clang-cl `
-DCMAKE_CXX_COMPILER=clang-cl `
-DLLVM_LIT_ARGS="-v --time-tests --show-unsupported" `
-DCMAKE_C_COMPILER_LAUNCHER=sccache `
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache
ninja check-openmp
windows-msvc-separate:
runs-on: windows-latest
steps:
- name: Install dependencies
run: |
choco install -y ninja
- uses: actions/checkout@v4
- name: Set up the MSVC dev environment
uses: ilammy/msvc-dev-cmd@v1
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1
with:
max-size: 700M
key: clangcl-default
variant: sccache
- name: Build Clang and test tools
run: |
mkdir build
cd build
cmake ../llvm `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DLLVM_TARGETS_TO_BUILD=X86 `
-DLLVM_ENABLE_PROJECTS="clang" `
-DCMAKE_C_COMPILER=clang-cl `
-DCMAKE_CXX_COMPILER=clang-cl `
-DCMAKE_C_COMPILER_LAUNCHER=sccache `
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache
ninja
echo "$PWD\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
echo "LLVM_TOOLS=$PWD\bin" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
- name: Build and test OpenMP
run: |
cd openmp
mkdir build
cd build
cmake .. `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DOPENMP_LLVM_TOOLS_DIR="$Env:LLVM_TOOLS" `
-DCMAKE_C_COMPILER=clang-cl `
-DCMAKE_CXX_COMPILER=clang-cl `
-DOPENMP_LIT_ARGS="-v --time-tests --show-unsupported" `
-DOPENMP_TEST_C_COMPILER=clang `
-DOPENMP_TEST_CXX_COMPILER=clang++
ninja check-openmp
llvm-mingw:
runs-on: windows-latest
steps:
- name: Install dependencies
run: |
choco install -y ninja
- uses: actions/checkout@v4
- name: Install llvm-mingw
run: |
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240917/llvm-mingw-20240917-ucrt-x86_64.zip
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
del llvm-mingw*.zip
mv llvm-mingw* c:\llvm-mingw
echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1
with:
max-size: 700M
key: llvm-mingw
variant: ccache
- name: Build and test
run: |
mkdir build
cd build
cmake ../llvm `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DLLVM_TARGETS_TO_BUILD=X86 `
-DLLVM_ENABLE_PROJECTS="clang;compiler-rt;openmp" `
-DCLANG_DEFAULT_RTLIB=compiler-rt `
-DCLANG_DEFAULT_UNWINDLIB=libunwind `
-DCLANG_DEFAULT_CXX_STDLIB=libc++ `
-DCLANG_DEFAULT_LINKER=lld `
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=TRUE `
-DSANITIZER_CXX_ABI=libc++ `
-DCMAKE_ASM_MASM_COMPILER=llvm-ml `
-DLIBOMP_ASMFLAGS=-m64 `
-DLLVM_LIT_ARGS="-v --time-tests --show-unsupported" `
-DCMAKE_C_COMPILER_LAUNCHER=ccache `
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
ninja compiler-rt
ninja check-openmp
llvm-mingw-separate:
runs-on: windows-latest
steps:
- name: Install dependencies
run: |
choco install -y ninja
- uses: actions/checkout@v4
- name: Install llvm-mingw
run: |
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240917/llvm-mingw-20240917-ucrt-x86_64.zip
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
del llvm-mingw*.zip
mv llvm-mingw* c:\llvm-mingw
echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1
with:
max-size: 700M
key: llvm-mingw
variant: ccache
- name: Build Clang and test tools
run: |
mkdir build
cd build
cmake ../llvm `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DLLVM_TARGETS_TO_BUILD=X86 `
-DLLVM_ENABLE_PROJECTS="clang;compiler-rt" `
-DCLANG_DEFAULT_RTLIB=compiler-rt `
-DCLANG_DEFAULT_UNWINDLIB=libunwind `
-DCLANG_DEFAULT_CXX_STDLIB=libc++ `
-DCLANG_DEFAULT_LINKER=lld `
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=TRUE `
-DSANITIZER_CXX_ABI=libc++ `
-DCMAKE_C_COMPILER_LAUNCHER=ccache `
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
ninja not FileCheck clang compiler-rt
echo "$PWD\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
echo "LLVM_TOOLS=$PWD\bin" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
- name: Build and test OpenMP
run: |
cd openmp
mkdir build
cd build
cmake .. `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DOPENMP_LLVM_TOOLS_DIR="$Env:LLVM_TOOLS" `
-DCMAKE_C_COMPILER=clang `
-DCMAKE_CXX_COMPILER=clang++ `
-DCMAKE_ASM_MASM_COMPILER=llvm-ml `
-DOPENMP_LIT_ARGS="-v --time-tests --show-unsupported" `
-DLIBOMP_ASMFLAGS=-m64
ninja check-openmp
linux:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install ninja-build
- uses: actions/checkout@v4
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1
with:
max-size: 700M
key: linux
- name: Build and test
run: |
mkdir build
cd build
cmake ../llvm \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD=X86 \
-DLLVM_ENABLE_PROJECTS="clang;openmp" \
-DOPENMP_ENABLE_LIBOMPTARGET=OFF \
-DLLVM_LIT_ARGS="-v --time-tests --show-unsupported" \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
ninja check-openmp
linux-separate:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install ninja-build
- uses: actions/checkout@v4
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1
with:
max-size: 700M
key: linux
- name: Build Clang and test tools
run: |
mkdir build
cd build
cmake ../llvm \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD=X86 \
-DLLVM_ENABLE_PROJECTS="clang" \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
ninja not FileCheck clang
echo $(pwd)/bin > $GITHUB_PATH
echo LLVM_TOOLS=$(pwd)/bin > $GITHUB_ENV
- name: Build and test OpenMP
run: |
cd openmp
mkdir build
cd build
cmake .. \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DOPENMP_LLVM_TOOLS_DIR="$LLVM_TOOLS" \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DOPENMP_ENABLE_LIBOMPTARGET=OFF \
-DOPENMP_LIT_ARGS="-v --time-tests --show-unsupported"
ninja check-openmp