-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge commit 'fed41342a82f5a3a9201819a82bf7a48313e296b' of https://gi…
…thub.com/llvm/llvm-project into release_12.x. Merging up to the upstream commit hash corresponding to the 12.0.1 release of LLVM/Clang.
- Loading branch information
Showing
774 changed files
with
22,126 additions
and
12,507 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
name: Clang Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- '.github/workflows/clang-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- '.github/workflows/clang-tests.yml' | ||
|
||
jobs: | ||
build_clang: | ||
name: clang check-all | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 250 | ||
- name: Test clang | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release | ||
build_target: check-clang |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
name: libclang ABI Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- '.github/workflows/libclang-abi-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- '.github/workflows/libclang-abi-tests.yml' | ||
|
||
jobs: | ||
abi-dump-setup: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
BASELINE_REF: ${{ steps.vars.outputs.BASELINE_REF }} | ||
ABI_HEADERS: ${{ steps.vars.outputs.ABI_HEADERS }} | ||
ABI_LIBS: ${{ steps.vars.outputs.ABI_LIBS }} | ||
BASELINE_VERSION_MAJOR: ${{ steps.vars.outputs.BASELINE_VERSION_MAJOR }} | ||
BASELINE_VERSION_MINOR: ${{ steps.vars.outputs.BASELINE_VERSION_MINOR }} | ||
LLVM_VERSION_MAJOR: ${{ steps.version.outputs.LLVM_VERSION_MAJOR }} | ||
LLVM_VERSION_MINOR: ${{ steps.version.outputs.LLVM_VERSION_MINOR }} | ||
LLVM_VERSION_PATCH: ${{ steps.version.outputs.LLVM_VERSION_PATCH }} | ||
steps: | ||
- name: Checkout source | ||
uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 250 | ||
|
||
- name: Get LLVM version | ||
id: version | ||
uses: llvm/actions/get-llvm-version@main | ||
|
||
- name: Setup Variables | ||
id: vars | ||
run: | | ||
minor_version=0 | ||
remote_repo='https://github.com/llvm/llvm-project' | ||
if [ ${{ steps.version.outputs.LLVM_VERSION_MINOR }} -ne 0 -o ${{ steps.version.outputs.LLVM_VERSION_PATCH }} -eq 0 ]; then | ||
major_version=$(( ${{ steps.version.outputs.LLVM_VERSION_MAJOR }} - 1)) | ||
baseline_ref="llvmorg-$major_version.0.0" | ||
# If there is a minor release, we want to use that as the base line. | ||
minor_ref=`git ls-remote --refs -t $remote_repo llvmorg-$major_version.[1-9].[0-9] | tail -n1 | grep -o 'llvmorg-.\+' || true` | ||
if [ -n "$minor_ref" ]; then | ||
baseline_ref=$minor_ref | ||
else | ||
# Check if we have a release candidate | ||
rc_ref=`git ls-remote --refs -t $remote_repo llvmorg-$major_version.[1-9].[0-9]-rc* | tail -n1 | grep -o 'llvmorg-.\+' || true` | ||
if [ -n "$rc_ref" ]; then | ||
baseline_ref=$rc_ref | ||
fi | ||
fi | ||
echo ::set-output name=BASELINE_VERSION_MAJOR::$major_version | ||
echo ::set-output name=BASELINE_REF::$baseline_ref | ||
echo ::set-output name=ABI_HEADERS::clang-c | ||
echo ::set-output name=ABI_LIBS::libclang.so | ||
else | ||
echo ::set-output name=BASELINE_VERSION_MAJOR::${{ steps.version.outputs.LLVM_VERSION_MAJOR }} | ||
echo ::set-output name=BASELINE_REF::llvmorg-${{ steps.version.outputs.LLVM_VERSION_MAJOR }}.0.0 | ||
echo ::set-output name=ABI_HEADERS::. | ||
echo ::set-output name=ABI_LIBS::libclang.so libclang-cpp.so | ||
fi | ||
abi-dump: | ||
needs: abi-dump-setup | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
name: | ||
- build-baseline | ||
- build-latest | ||
include: | ||
- name: build-baseline | ||
llvm_version_major: ${{ needs.abi-dump-setup.outputs.BASELINE_VERSION_MAJOR }} | ||
ref: ${{ needs.abi-dump-setup.outputs.BASELINE_REF }} | ||
repo: llvm/llvm-project | ||
- name: build-latest | ||
llvm_version_major: ${{ needs.abi-dump-setup.outputs.LLVM_VERSION_MAJOR }} | ||
ref: ${{ github.sha }} | ||
repo: ${{ github.repository }} | ||
steps: | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- name: Install abi-compliance-checker | ||
run: | | ||
sudo apt-get install abi-dumper autoconf pkg-config | ||
- name: Install universal-ctags | ||
run: | | ||
git clone https://github.com/universal-ctags/ctags.git | ||
cd ctags | ||
./autogen.sh | ||
./configure | ||
sudo make install | ||
- name: Download source code | ||
uses: llvm/actions/get-llvm-project-src@main | ||
with: | ||
ref: ${{ matrix.ref }} | ||
repo: ${{ matrix.repo }} | ||
- name: Configure | ||
run: | | ||
mkdir install | ||
cmake -B build -S llvm -G Ninja -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="" -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_C_FLAGS_DEBUG="-g1 -Og" -DCMAKE_CXX_FLAGS_DEBUG="-g1 -Og" -DCMAKE_INSTALL_PREFIX=`pwd`/install llvm | ||
- name: Build | ||
run: ninja -C build/ ${{ needs.abi-dump-setup.outputs.ABI_LIBS }} install-clang-headers | ||
- name: Dump ABI | ||
run: | | ||
parallel abi-dumper -lver ${{ matrix.ref }} -skip-cxx -public-headers ./install/include/${{ needs.abi-dump-setup.outputs.ABI_HEADERS }} -o {}-${{ matrix.ref }}.abi ./build/lib/{} ::: ${{ needs.abi-dump-setup.outputs.ABI_LIBS }} | ||
for lib in ${{ needs.abi-dump-setup.outputs.ABI_LIBS }}; do | ||
# Remove symbol versioning from dumps, so we can compare across major versions. | ||
sed -i 's/LLVM_${{ matrix.llvm_version_major }}/LLVM_NOVERSION/' $lib-${{ matrix.ref }}.abi | ||
done | ||
- name: Upload ABI file | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ matrix.name }} | ||
path: "*${{ matrix.ref }}.abi" | ||
|
||
abi-compare: | ||
runs-on: ubuntu-latest | ||
needs: | ||
- abi-dump-setup | ||
- abi-dump | ||
steps: | ||
- name: Download baseline | ||
uses: actions/download-artifact@v1 | ||
with: | ||
name: build-baseline | ||
- name: Download latest | ||
uses: actions/download-artifact@v1 | ||
with: | ||
name: build-latest | ||
|
||
- name: Install abi-compliance-checker | ||
run: sudo apt-get install abi-compliance-checker | ||
- name: Compare ABI | ||
run: | | ||
for lib in ${{ needs.abi-dump-setup.outputs.ABI_LIBS }}; do | ||
abi-compliance-checker -lib $lib -old build-baseline/$lib*.abi -new build-latest/$lib*.abi | ||
done | ||
- name: Upload ABI Comparison | ||
if: always() | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: compat-report-${{ github.sha }} | ||
path: compat_reports/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
name: libclc Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'libclc/**' | ||
- '.github/workflows/libclc-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'libclc/**' | ||
- '.github/workflows/libclc-tests.yml' | ||
|
||
jobs: | ||
build_libclc: | ||
name: libclc test | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
# Disable build on windows, because I can't figure out where llvm-config is. | ||
#- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 250 | ||
- name: Build clang | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release | ||
build_target: "" | ||
- name: Build and test libclc | ||
# spirv targets require llvm-spirv, so skip building them until we figure out | ||
# how to install this tool. | ||
run: | | ||
cmake -G Ninja -S libclc -B libclc-build -DLLVM_CONFIG=`pwd`/build/bin/llvm-config -DLIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn--amdhsa;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl" | ||
ninja -C libclc-build | ||
ninja -C libclc-build test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
name: LLD Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'lld/**' | ||
- 'llvm/**' | ||
- '.github/workflows/lld-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'lld/**' | ||
- 'llvm/**' | ||
- '.github/workflows/lld-tests.yml' | ||
|
||
jobs: | ||
build_lld: | ||
name: lld check-all | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 250 | ||
- name: Test lld | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="lld" -DCMAKE_BUILD_TYPE=Release | ||
build_target: check-lld |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: lldb Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'lldb/**' | ||
- '.github/workflows/lldb-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'lldb/**' | ||
- '.github/workflows/lldb-tests.yml' | ||
|
||
jobs: | ||
build_lldb: | ||
name: lldb build | ||
runs-on: ${{ matrix.os }} | ||
# Workaround for build faliure on Mac OS X: llvm.org/PR46190, https://github.com/actions/virtual-environments/issues/2274 | ||
env: | ||
CPLUS_INCLUDE_PATH: /usr/local/opt/llvm/include/c++/v1:/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 250 | ||
- name: Build lldb | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
# Mac OS requries that libcxx is enabled for lldb tests, so we need to disable them. | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="clang;lldb" -DCMAKE_BUILD_TYPE=Release -DLLDB_INCLUDE_TESTS=OFF | ||
# check-lldb is not consistent, so we only build lldb. | ||
build_target: "" |
Oops, something went wrong.