Skip to content

Commit

Permalink
Merge tag 'llvmorg-13.0.0-rc1' into juice/main
Browse files Browse the repository at this point in the history
Update the juice branch to the first release candidate of LLVM 13.0.0.
  • Loading branch information
Zollerboy1 committed Aug 24, 2021
2 parents b9bc620 + d6974c0 commit e61cbf8
Show file tree
Hide file tree
Showing 6,105 changed files with 480,047 additions and 125,025 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
43 changes: 43 additions & 0 deletions .github/workflows/clang-tests.yml
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
151 changes: 151 additions & 0 deletions .github/workflows/libclang-abi-tests.yml
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/

53 changes: 53 additions & 0 deletions .github/workflows/libclc-tests.yml
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
43 changes: 43 additions & 0 deletions .github/workflows/lld-tests.yml
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
50 changes: 50 additions & 0 deletions .github/workflows/lldb-tests.yml
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: ""
Loading

0 comments on commit e61cbf8

Please sign in to comment.