Skip to content

Commit 246b1ef

Browse files
committed
Merge remote-tracking branch 'origin/sycl' into attach_annotation_to_get
2 parents efb363e + ffbdde4 commit 246b1ef

File tree

3,846 files changed

+172508
-72964
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,846 files changed

+172508
-72964
lines changed

.ci/monolithic-linux.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ cmake -S ${MONOREPO_ROOT}/llvm -B ${BUILD_DIR} \
4545
-D LLVM_ENABLE_ASSERTIONS=ON \
4646
-D LLVM_BUILD_EXAMPLES=ON \
4747
-D COMPILER_RT_BUILD_LIBFUZZER=OFF \
48-
-D LLVM_LIT_ARGS="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml" \
48+
-D LLVM_LIT_ARGS="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml --timeout=1200 --time-tests" \
4949
-D LLVM_ENABLE_LLD=ON \
5050
-D CMAKE_CXX_FLAGS=-gmlt \
5151
-D BOLT_CLANG_EXE=/usr/bin/clang \

.ci/monolithic-windows.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ cmake -S ${MONOREPO_ROOT}/llvm -B ${BUILD_DIR} \
4545
-D LLVM_ENABLE_ASSERTIONS=ON \
4646
-D LLVM_BUILD_EXAMPLES=ON \
4747
-D COMPILER_RT_BUILD_LIBFUZZER=OFF \
48-
-D LLVM_LIT_ARGS="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml" \
48+
-D LLVM_LIT_ARGS="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml --timeout=1200 --time-tests" \
4949
-D COMPILER_RT_BUILD_ORC=OFF \
5050
-D CMAKE_C_COMPILER_LAUNCHER=sccache \
5151
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache \

.github/workflows/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Github action workflows should be stored in this directrory.
1+
Github action workflows should be stored in this directory.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
name: Build CI Container
3+
4+
permissions:
5+
contents: read
6+
7+
on:
8+
push:
9+
branches:
10+
- main
11+
paths:
12+
- .github/workflows/build-ci-container.yml
13+
- '.github/workflows/containers/github-action-ci/**'
14+
pull_request:
15+
branches:
16+
- main
17+
paths:
18+
- .github/workflows/build-ci-container.yml
19+
- '.github/workflows/containers/github-action-ci/**'
20+
21+
jobs:
22+
build-ci-container:
23+
if: github.repository_owner == 'llvm'
24+
runs-on: ubuntu-latest
25+
permissions:
26+
packages: write
27+
steps:
28+
- name: Write Variables
29+
id: vars
30+
run: |
31+
tag=`date +%s`
32+
container_name="ghcr.io/$GITHUB_REPOSITORY_OWNER/ci-ubuntu-22.04"
33+
echo "container-name=$container_name" >> $GITHUB_OUTPUT
34+
echo "container-name-tag=$container_name:$tag" >> $GITHUB_OUTPUT
35+
36+
- name: Checkout LLVM
37+
uses: actions/checkout@v4
38+
with:
39+
sparse-checkout: .github/workflows/containers/github-action-ci/
40+
41+
- name: Build Container
42+
working-directory: ./.github/workflows/containers/github-action-ci/
43+
run: |
44+
podman build -t ${{ steps.vars.outputs.container-name-tag }} .
45+
podman tag ${{ steps.vars.outputs.container-name-tag }} ${{ steps.vars.outputs.container-name }}:latest
46+
47+
- name: Test Container
48+
run: |
49+
for image in ${{ steps.vars.outputs.container-name-tag }} ${{ steps.vars.outputs.container-name }}; do
50+
podman run --rm -it $image /usr/bin/bash -x -c 'printf '\''#include <iostream>\nint main(int argc, char **argv) { std::cout << "Hello\\n"; }'\'' | clang++ -x c++ - && ./a.out | grep Hello'
51+
done
52+
53+
- name: Push Container
54+
if: github.event_name == 'push'
55+
env:
56+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57+
run: |
58+
podman login -u ${{ github.actor }} -p $GITHUB_TOKEN ghcr.io
59+
podman push ${{ steps.vars.outputs.container-name-tag }}
60+
podman push ${{ steps.vars.outputs.container-name }}:latest
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
FROM docker.io/library/ubuntu:22.04 as base
2+
ENV LLVM_SYSROOT=/opt/llvm/
3+
4+
FROM base as toolchain
5+
ENV LLVM_MAJOR=17
6+
ENV LLVM_VERSION=${LLVM_MAJOR}.0.6
7+
ENV LLVM_DIRNAME=clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-22.04
8+
ENV LLVM_FILENAME=${LLVM_DIRNAME}.tar.xz
9+
10+
RUN apt-get update && \
11+
apt-get install -y \
12+
curl \
13+
xz-utils
14+
15+
RUN mkdir -p $LLVM_SYSROOT/bin/ $LLVM_SYSROOT/lib/
16+
17+
RUN curl -O -L https://github.com/llvm/llvm-project/releases/download/llvmorg-$LLVM_VERSION/$LLVM_FILENAME
18+
19+
RUN tar -C $LLVM_SYSROOT --strip-components=1 -xJf $LLVM_FILENAME \
20+
$LLVM_DIRNAME/bin/clang \
21+
$LLVM_DIRNAME/bin/clang++ \
22+
$LLVM_DIRNAME/bin/clang-cl \
23+
$LLVM_DIRNAME/bin/clang-$LLVM_MAJOR \
24+
$LLVM_DIRNAME/bin/lld \
25+
$LLVM_DIRNAME/bin/ld.lld \
26+
$LLVM_DIRNAME/lib/clang/
27+
28+
29+
FROM base
30+
31+
COPY --from=toolchain $LLVM_SYSROOT $LLVM_SYSROOT
32+
33+
# Need to install curl for hendrikmuhs/ccache-action
34+
# Need nodejs for some of the GitHub actions.
35+
# Need perl-modules for clang analyzer tests.
36+
RUN apt-get update && \
37+
apt-get install -y \
38+
binutils \
39+
cmake \
40+
curl \
41+
libstdc++-11-dev \
42+
ninja-build \
43+
nodejs \
44+
perl-modules \
45+
python3-psutil
46+
47+
ENV LLVM_SYSROOT=$LLVM_SYSROOT
48+
ENV PATH=${LLVM_SYSROOT}/bin:${PATH}

.github/workflows/docs.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
fetch-depth: 1
6464
- name: Get subprojects that have doc changes
6565
id: docs-changed-subprojects
66-
uses: tj-actions/changed-files@v39
66+
uses: tj-actions/changed-files@v41
6767
with:
6868
files_yaml: |
6969
llvm:
@@ -167,4 +167,3 @@ jobs:
167167
run: |
168168
cmake -B flang-build -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;mlir;flang" -DLLVM_ENABLE_SPHINX=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF ./llvm
169169
TZ=UTC ninja -C flang-build docs-flang-html docs-flang-man
170-
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Libclang Python Binding Tests
2+
3+
permissions:
4+
contents: read
5+
6+
on:
7+
workflow_dispatch:
8+
push:
9+
paths:
10+
- 'clang/bindings/python/**'
11+
- 'clang/tools/libclang/**'
12+
- 'clang/CMakeList.txt'
13+
- '.github/workflows/libclang-python-tests.yml'
14+
- '.github/workflows/llvm-project-tests.yml'
15+
pull_request:
16+
paths:
17+
- 'clang/bindings/python/**'
18+
- 'clang/tools/libclang/**'
19+
- 'clang/CMakeList.txt'
20+
- '.github/workflows/libclang-python-tests.yml'
21+
- '.github/workflows/llvm-project-tests.yml'
22+
23+
concurrency:
24+
# Skip intermediate builds: always.
25+
# Cancel intermediate builds: only if it is a pull request build.
26+
group: ${{ github.workflow }}-${{ github.ref }}
27+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
28+
29+
jobs:
30+
check-clang-python:
31+
# Build libclang and then run the libclang Python binding's unit tests.
32+
name: Build and run Python unit tests
33+
uses: ./.github/workflows/llvm-project-tests.yml
34+
with:
35+
build_target: check-clang-python
36+
projects: clang
37+
# There is an issue running on "windows-2019".
38+
# See https://github.com/llvm/llvm-project/issues/76601#issuecomment-1873049082.
39+
os_list: '["ubuntu-latest"]'

.github/workflows/libcxx-build-and-test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ jobs:
161161
'generic-no-unicode',
162162
'generic-no-wide-characters',
163163
'generic-no-rtti',
164+
'generic-optimized-speed',
164165
'generic-static',
165166
'generic-with_llvm_unwinder',
166167
# TODO Find a better place for the benchmark and bootstrapping builds to live. They're either very expensive
@@ -207,4 +208,3 @@ jobs:
207208
**/CMakeError.log
208209
**/CMakeOutput.log
209210
**/crash_diagnostics/*
210-

.github/workflows/llvm-project-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
# enough cache space for all the tests to run at once and still
8888
# fit under the 10 GB limit.
8989
max-size: 500M
90-
key: sccache-${{ matrix.os }}
90+
key: ${{ matrix.os }}
9191
variant: sccache
9292
- name: Build and Test
9393
uses: llvm/actions/build-test-llvm-project@main

.github/workflows/pr-code-format.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222

2323
- name: Get changed files
2424
id: changed-files
25-
uses: tj-actions/changed-files@v39
25+
uses: tj-actions/changed-files@v41
2626
with:
2727
separator: ","
2828
skip_initial_fetch: true

.github/workflows/release-binaries.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ jobs:
9393

9494
- name: Build Clang
9595
run: |
96-
cmake -G Ninja -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE=Release -DCMAKE_ENABLE_ASSERTIONS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DLLVM_ENABLE_PROJECTS=clang -S llvm -B build
97-
ninja -v -C build
96+
cmake -G Ninja -C clang/cmake/caches/Release.cmake -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_POSITION_INDEPENDENT_CODE=ON -S llvm -B build
97+
ninja -v -C build clang
9898
9999
100100
build-binaries:
@@ -152,6 +152,7 @@ jobs:
152152
-triple ${{ matrix.target.triple }} \
153153
-use-ninja \
154154
-no-checkout \
155+
-use-cmake-cache \
155156
-no-test-suite \
156157
-configure-flags "-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
157158

.github/workflows/sycl_linux_build.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,6 @@ jobs:
222222
cmake --build $GITHUB_WORKSPACE/build --target install-clang-libraries
223223
cmake --build $GITHUB_WORKSPACE/build --target install-llvm-libraries
224224
225-
- name: Install lint utilities
226-
# We install these into our nightly container that CI uses to run lint
227-
# checks.
228-
run: |
229-
cmake --build $GITHUB_WORKSPACE/build --target install-clang-format
230-
cmake --build $GITHUB_WORKSPACE/build --target install-clang-tidy
231-
232225
- name: Pack toolchain
233226
if: ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
234227
run: tar -I '${{ steps.artifact_info.outputs.COMPRESS }}' -cf ${{ steps.artifact_info.outputs.ARCHIVE_NAME }} -C $GITHUB_WORKSPACE/build/install .

.github/workflows/sycl_linux_precommit.yml

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -31,40 +31,9 @@ jobs:
3131
detect_changes:
3232
uses: ./.github/workflows/sycl_detect_changes.yml
3333

34-
lint:
35-
runs-on: [Linux, build]
36-
if: ${{ always() && !contains(github.event.pull_request.labels.*.name, 'disable-lint') }}
37-
container:
38-
image: ghcr.io/intel/llvm/sycl_ubuntu2204_nightly:no-drivers
39-
options: -u 1001:1001
40-
steps:
41-
- uses: actions/checkout@v3
42-
with:
43-
sparse-checkout: |
44-
devops/actions/cached_checkout
45-
devops/actions/clang-format
46-
devops/actions/cleanup
47-
- name: Register cleanup after job is finished
48-
uses: ./devops/actions/cleanup
49-
- name: 'PR commits + 2'
50-
run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 2 ))" >> "${GITHUB_ENV}"
51-
- uses: ./devops/actions/cached_checkout
52-
with:
53-
path: src
54-
fetch-depth: ${{ env.PR_FETCH_DEPTH }}
55-
ref: ${{ github.event.pull_request.head.sha }}
56-
merge_ref: ''
57-
cache_path: "/__w/repo_cache/"
58-
- name: Run clang-format
59-
uses: ./devops/actions/clang-format
60-
with:
61-
path: src
62-
6334
build:
64-
needs: [lint, detect_changes]
65-
if: |
66-
always()
67-
&& (success() || needs.lint.result == 'skipped')
35+
needs: [detect_changes]
36+
if: always() && success()
6837
uses: ./.github/workflows/sycl_linux_build.yml
6938
with:
7039
build_ref: ${{ github.sha }}

.github/workflows/sycl_windows_precommit.yml

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -33,41 +33,10 @@ jobs:
3333
detect_changes:
3434
uses: ./.github/workflows/sycl_detect_changes.yml
3535

36-
lint:
37-
runs-on: [Linux, build]
38-
if: ${{ always() && !contains(github.event.pull_request.labels.*.name, 'disable-lint') }}
39-
container:
40-
image: ghcr.io/intel/llvm/sycl_ubuntu2204_nightly:no-drivers
41-
options: -u 1001:1001
42-
steps:
43-
- uses: actions/checkout@v3
44-
with:
45-
ref: ${{ github.base_ref }}
46-
sparse-checkout: |
47-
devops/actions/cached_checkout
48-
devops/actions/clang-format
49-
devops/actions/cleanup
50-
- name: Register cleanup after job is finished
51-
uses: ./devops/actions/cleanup
52-
- name: 'PR commits + 2'
53-
run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 2 ))" >> "${GITHUB_ENV}"
54-
- uses: ./devops/actions/cached_checkout
55-
with:
56-
path: src
57-
fetch-depth: ${{ env.PR_FETCH_DEPTH }}
58-
ref: ${{ github.event.pull_request.head.sha }}
59-
merge_ref: ''
60-
cache_path: "/__w/repo_cache/"
61-
- name: Run clang-format
62-
uses: ./devops/actions/clang-format
63-
with:
64-
path: src
65-
6636
build:
67-
needs: [lint, detect_changes]
37+
needs: [detect_changes]
6838
if: |
69-
always()
70-
&& (success() || needs.lint.result == 'skipped')
39+
always() && success()
7140
&& github.repository == 'intel/llvm'
7241
uses: ./.github/workflows/sycl_windows_build.yml
7342
with:

bolt/lib/Rewrite/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
55
MC
66
Object
77
Support
8+
DWARFLinkerBase
89
DWARFLinker
910
AsmPrinter
1011
TargetParser

bolt/lib/Rewrite/DWARFRewriter.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "llvm/BinaryFormat/Dwarf.h"
2222
#include "llvm/CodeGen/AsmPrinter.h"
2323
#include "llvm/CodeGen/DIE.h"
24-
#include "llvm/DWARFLinker/DWARFStreamer.h"
24+
#include "llvm/DWARFLinker/Classic/DWARFStreamer.h"
2525
#include "llvm/DebugInfo/DWARF/DWARFContext.h"
2626
#include "llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h"
2727
#include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
@@ -178,6 +178,9 @@ translateInputToOutputLocationList(const BinaryFunction &BF,
178178
return MergedLL;
179179
}
180180

181+
using namespace dwarf_linker;
182+
using namespace dwarf_linker::classic;
183+
181184
namespace llvm {
182185
namespace bolt {
183186
/// Emits debug information into .debug_info or .debug_types section.
@@ -278,10 +281,10 @@ class DIEStreamer : public DwarfStreamer {
278281

279282
public:
280283
DIEStreamer(DIEBuilder *DIEBldr, DWARFRewriter &Rewriter,
281-
DWARFLinker::OutputFileType OutFileType,
284+
DWARFLinkerBase::OutputFileType OutFileType,
282285
raw_pwrite_stream &OutFile,
283286
std::function<StringRef(StringRef Input)> Translator,
284-
DWARFLinker::messageHandler Warning)
287+
DWARFLinkerBase::MessageHandlerTy Warning)
285288
: DwarfStreamer(OutFileType, OutFile, Translator, Warning),
286289
DIEBldr(DIEBldr), Rewriter(Rewriter){};
287290

@@ -457,7 +460,7 @@ createDIEStreamer(const Triple &TheTriple, raw_pwrite_stream &OutFile,
457460
DWARFRewriter &Rewriter) {
458461

459462
std::unique_ptr<DIEStreamer> Streamer = std::make_unique<DIEStreamer>(
460-
&DIEBldr, Rewriter, llvm::DWARFLinker::OutputFileType::Object, OutFile,
463+
&DIEBldr, Rewriter, DWARFLinkerBase::OutputFileType::Object, OutFile,
461464
[](StringRef Input) -> StringRef { return Input; },
462465
[&](const Twine &Warning, StringRef Context, const DWARFDie *) {});
463466
Error Err = Streamer->init(TheTriple, Swift5ReflectionSegmentName);

bolt/lib/Rewrite/JITLinkLinker.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ struct JITLinkLinker::Context : jitlink::JITLinkContext {
173173

174174
void notifyFinalized(
175175
jitlink::JITLinkMemoryManager::FinalizedAlloc Alloc) override {
176-
Linker.Allocs.push_back(std::move(Alloc));
176+
if (Alloc)
177+
Linker.Allocs.push_back(std::move(Alloc));
177178
++Linker.MM->ObjectsLoaded;
178179
}
179180
};

0 commit comments

Comments
 (0)