Skip to content

Commit 3a5f724

Browse files
authored
Merge pull request #104 from Xilinx/matthias.bump_to_b44b3494f60296db6aca38a14cab061d9b747a0a
bump to b44b349
2 parents 7093b19 + 587af84 commit 3a5f724

File tree

7,881 files changed

+354062
-147356
lines changed

Some content is hidden

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

7,881 files changed

+354062
-147356
lines changed

.github/CODEOWNERS

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,34 @@
1+
# This file lists reviewers that are auto-assigned when a pull request modifies
2+
# certain files or directories. If you add yourself to this file, you commit to
3+
# reviewing a large fraction of pull requests in the relevant area.
4+
#
5+
# The GitHub "code owners" mechanism is used exclusively to auto-assign
6+
# reviewers and does not carry significance beyond that. It is not necessary
7+
# to receive an approval from a "code owner" in particular -- any LLVM project
8+
# member can approve pull requests.
9+
#
10+
# Note that GitHub's concept of "code owner" is independent from LLVM's own
11+
# "code owner" concept, they merely happen to share terminology. See
12+
# https://llvm.org/docs/DeveloperPolicy.html#code-owners, as well as the
13+
# CODE_OWNERS.txt files in the respective subproject directories.
14+
115
/libcxx/ @llvm/reviewers-libcxx
216
/libcxxabi/ @llvm/reviewers-libcxxabi
317
/libunwind/ @llvm/reviewers-libunwind
418
/runtimes/ @llvm/reviewers-libcxx
19+
20+
/llvm/lib/Analysis/BasicAliasAnalysis.cpp @nikic
21+
/llvm/lib/Analysis/InstructionSimplify.cpp @nikic
22+
/llvm/lib/Analysis/LazyValueInfo.cpp @nikic
23+
/llvm/lib/Analysis/ScalarEvolution.cpp @nikic
24+
/llvm/lib/Analysis/ValueTracking.cpp @nikic
25+
/llvm/lib/IR/ConstantRange.cpp @nikic
26+
/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @nikic
27+
/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic
28+
/llvm/lib/Transforms/InstCombine/ @nikic
29+
30+
/clang/test/CXX/drs/ @Endilll
31+
/clang/www/cxx_dr_status.html @Endilll
32+
/clang/www/make_cxx_dr_status @Endilll
33+
34+
/lldb/ @JDevlieghere

.github/new-issues-labeler.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
'libc++':
1111
- '/libc[+x]{2}(?!\-)/i'
1212

13-
'libc++-abi':
14-
- '/libc[+x]{2}-abi/i'
13+
'libc++abi':
14+
- '/libc[+x]{2}-?abi/i'
1515

1616
'libc':
1717
- '/\blibc(?![-+])\b/i'

.github/new-prs-labeler.yml

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,6 @@ lld:
4040
llvm-lit:
4141
- llvm/utils/lit/**/*
4242

43-
mlir:afine:
44-
- mlir/**/Affine/**/*
45-
46-
mlir:python:
47-
- mlir/python/**/*
48-
49-
mlir:vectorops:
50-
- mlir/**/Vector/**/*
51-
5243
PGO:
5344
- llvm/lib/Transforms/Instrumentation/CGProfile.cpp
5445
- llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
@@ -90,6 +81,10 @@ compiler-rt:sanitizer:
9081
- compiler-rt/lib/scudo/**
9182
- compiler-rt/test/scudo/**
9283

84+
compiler-rt:scudo:
85+
- compiler-rt/lib/scudo/**
86+
- compiler-rt/test/scudo/**
87+
9388
xray:
9489
- llvm/tools/llvm-xray/**
9590
- compiler-rt/*/xray/**
@@ -259,6 +254,15 @@ mlir:vector:
259254
mlir:execution-engine:
260255
- mlir/**/ExecutionEngine/**
261256

257+
mlir:presburger:
258+
- mlir/**/*Presburger*/**
259+
260+
mlir:python:
261+
- mlir/python/**/*
262+
263+
mlir:vectorops:
264+
- mlir/**/Vector/**/*
265+
262266
coroutines:
263267
- clang/docs/DebuggingCoroutines.rst
264268
- clang/lib/Sema/SemaCoroutine.cpp
@@ -305,10 +309,6 @@ tools:llvm-mca:
305309
- llvm/include/llvm/MCA/**
306310
- llvm/lib/MCA/**
307311

308-
vectorizers:
309-
- llvm/lib/Transforms/Vectorize/**
310-
- llvm/include/llvm/Transforms/Vectorize/**
311-
312312
clang:
313313
- any:
314314
- clang/**
@@ -633,9 +633,6 @@ llvm:regalloc:
633633
- llvm/include/llvm/CodeGen/Spiller.h
634634
- llvm/**/*RegAlloc
635635

636-
mlir:presburger:
637-
- mlir/**/*Presburger
638-
639636
lldb:
640637
- lldb/**
641638

.github/workflows/llvm-tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,17 @@ jobs:
170170
uses: actions/download-artifact@v3
171171
with:
172172
name: build-baseline
173+
path: build-baseline
173174
- name: Download latest
174175
uses: actions/download-artifact@v3
175176
with:
176177
name: build-latest
178+
path: build-latest
177179
- name: Download symbol list
178180
uses: actions/download-artifact@v3
179181
with:
180182
name: symbol-list
183+
path: symbol-list
181184

182185
- name: Install abi-compliance-checker
183186
run: sudo apt-get install abi-compliance-checker

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

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: "Check code formatting"
2+
on: pull_request_target
3+
permissions:
4+
pull-requests: write
5+
6+
jobs:
7+
code_formatter:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Fetch LLVM sources
11+
uses: actions/checkout@v4
12+
with:
13+
fetch-depth: 2
14+
15+
- name: Get changed files
16+
id: changed-files
17+
uses: tj-actions/changed-files@v39
18+
with:
19+
separator: ","
20+
fetch_depth: 100 # Fetches only the last 10 commits
21+
22+
- name: "Listed files"
23+
run: |
24+
echo "Formatting files:"
25+
echo "${{ steps.changed-files.outputs.all_changed_files }}"
26+
27+
- name: Install clang-format
28+
uses: aminya/setup-cpp@v1
29+
with:
30+
clangformat: 17.0.1
31+
32+
- name: Setup Python env
33+
uses: actions/setup-python@v4
34+
with:
35+
python-version: '3.11'
36+
cache: 'pip'
37+
cache-dependency-path: 'llvm/utils/git/requirements_formatting.txt'
38+
39+
- name: Install python dependencies
40+
run: pip install -r llvm/utils/git/requirements_formatting.txt
41+
42+
- name: Run code formatter
43+
env:
44+
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}
45+
START_REV: ${{ github.event.pull_request.base.sha }}
46+
END_REV: ${{ github.event.pull_request.head.sha }}
47+
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
48+
run: |
49+
python llvm/utils/git/code-format-helper.py \
50+
--token ${{ secrets.GITHUB_TOKEN }} \
51+
--issue-number $GITHUB_PR_NUMBER \
52+
--start-rev $START_REV \
53+
--end-rev $END_REV \
54+
--changed-files "$CHANGED_FILES"

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

Lines changed: 0 additions & 39 deletions
This file was deleted.

.github/workflows/pr-receive.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
name: PR Receive
44
on:
55
pull_request_target:
6+
types:
7+
- opened
8+
- reopened
9+
- ready_for_review
10+
- synchronize
611

712
permissions:
813
contents: read
@@ -15,6 +20,7 @@ jobs:
1520
# to rebase. We want to ignore these pull requests to avoid excessive
1621
# notifications.
1722
if: github.repository == 'llvm/llvm-project' &&
23+
github.event.pull_request.draft == false &&
1824
github.event.pull_request.commits < 10
1925
steps:
2026
- name: Store PR Information

.github/workflows/release-binaries.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
matrix:
6969
target:
7070
- triple: x86_64-linux-gnu-ubuntu-22.04
71-
runs-on: ubuntu-22.04-8x32
71+
runs-on: ubuntu-22.04-16x64
7272
debian-build-deps: >
7373
chrpath
7474
gcc-multilib

.github/workflows/release-tasks.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,19 @@ jobs:
2424
release_version=$(echo "${{ github.ref_name }}" | sed 's/llvmorg-//g')
2525
echo "release-version=$release_version" >> "$GITHUB_OUTPUT"
2626
27+
- name: Checkout LLVM
28+
uses: actions/checkout@v4
29+
2730
- name: Install Dependencies
2831
run: |
2932
sudo apt-get update
3033
sudo apt-get install -y \
3134
doxygen \
3235
graphviz \
3336
python3-github \
34-
python3-recommonmark \
35-
python3-sphinx \
3637
ninja-build \
3738
texlive-font-utils
38-
pip3 install --user sphinx-markdown-tables
39-
40-
- name: Checkout LLVM
41-
uses: actions/checkout@v4
39+
pip3 install --user -r ./llvm/docs/requirements.txt
4240
4341
- name: Create Release
4442
run: |
@@ -83,13 +81,24 @@ jobs:
8381
- name: Checkout LLVM
8482
uses: actions/checkout@v4
8583

84+
- name: Setup Cpp
85+
uses: aminya/setup-cpp@v1
86+
with:
87+
compiler: llvm-16.0.6
88+
cmake: true
89+
ninja: true
90+
8691
- name: Install dependencies
87-
run: sudo apt-get install -y python3-setuptools
92+
run: |
93+
sudo apt-get update
94+
sudo apt-get install -y python3-setuptools python3-psutil
8895
8996
- name: Test lit
9097
run: |
91-
cd llvm/utils/lit
92-
python3 lit.py tests
98+
mkdir build && cd build
99+
export FILECHECK_OPTS='-dump-input-filter=all -vv -color'
100+
cmake ../llvm -DCMAKE_BUILD_TYPE=Release -G Ninja
101+
ninja -v -j $(nproc) check-lit
93102
94103
- name: Package lit
95104
run: |

bolt/include/bolt/Core/BinaryContext.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,15 @@ class BinaryContext {
871871
return nullptr;
872872
}
873873

874+
/// Retrieves a reference to ELF's _GLOBAL_OFFSET_TABLE_ symbol, which points
875+
/// at GOT, or null if it is not present in the input binary symtab.
876+
BinaryData *getGOTSymbol();
877+
878+
/// Checks if symbol name refers to ELF's _GLOBAL_OFFSET_TABLE_ symbol
879+
bool isGOTSymbol(StringRef SymName) const {
880+
return SymName == "_GLOBAL_OFFSET_TABLE_";
881+
}
882+
874883
/// Return true if \p SymbolName was generated internally and was not present
875884
/// in the input binary.
876885
bool isInternalSymbolName(const StringRef Name) {

bolt/include/bolt/Core/BinaryFunction.h

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,6 @@ class BinaryFunction {
192192
static constexpr uint64_t COUNT_NO_PROFILE =
193193
BinaryBasicBlock::COUNT_NO_PROFILE;
194194

195-
/// We have to use at least 2-byte alignment for functions because of C++ ABI.
196-
static constexpr unsigned MinAlign = 2;
197-
198195
static const char TimerGroupName[];
199196
static const char TimerGroupDesc[];
200197

@@ -1720,8 +1717,24 @@ class BinaryFunction {
17201717
return *this;
17211718
}
17221719

1723-
Align getAlign() const { return Align(Alignment); }
1720+
uint16_t getMinAlignment() const {
1721+
// Align data in code BFs minimum to CI alignment
1722+
if (!size() && hasIslandsInfo())
1723+
return getConstantIslandAlignment();
1724+
1725+
// Minimal code alignment on AArch64 and RISCV is 4
1726+
if (BC.isAArch64() || BC.isRISCV())
1727+
return 4;
1728+
1729+
// We have to use at least 2-byte alignment for functions because
1730+
// of C++ ABI.
1731+
return 2;
1732+
}
1733+
1734+
Align getMinAlign() const { return Align(getMinAlignment()); }
1735+
17241736
uint16_t getAlignment() const { return Alignment; }
1737+
Align getAlign() const { return Align(getAlignment()); }
17251738

17261739
BinaryFunction &setMaxAlignmentBytes(uint16_t MaxAlignBytes) {
17271740
MaxAlignmentBytes = MaxAlignBytes;

bolt/include/bolt/Core/MCPlus.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class MCAnnotation {
6666
kTailCall, /// Tail call.
6767
kConditionalTailCall, /// CTC.
6868
kOffset, /// Offset in the function.
69+
kLabel, /// MCSymbol pointing to this instruction.
6970
kGeneric /// First generic annotation.
7071
};
7172

0 commit comments

Comments
 (0)