Skip to content

Commit 9e40ae0

Browse files
committed
Merge branch 'sycl' of https://github.com/intel/llvm into op-forward-ann-arg
2 parents 50ec25b + 8ab4907 commit 9e40ae0

File tree

4,415 files changed

+348416
-190438
lines changed

Some content is hidden

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

4,415 files changed

+348416
-190438
lines changed

.git-blame-ignore-revs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,6 @@ f6d557ee34b6bbdb1dc32f29e34b4a4a8ad35e81
7070

7171
# [libc++] Replace uses of _VSTD:: by std:: (#74331)
7272
77a00c0d546cd4aa8311b5b9031ae9ea8cdb050c
73+
74+
# [libc++] Format the code base (#74334)
75+
9783f28cbb155e4a8d49c12e1c60ce14dcfaf0c7

.gitattributes

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,143 @@
11
.github/CODEOWNERS merge=ours
2+
libcxx/src/**/*.cpp merge=libcxx-reformat
3+
libcxx/include/**/*.h merge=libcxx-reformat
4+
5+
# Explicitly handle files with no extension
6+
libcxx/include/__availability merge=libcxx-reformat
7+
libcxx/include/__bit_reference merge=libcxx-reformat
8+
libcxx/include/__config merge=libcxx-reformat
9+
libcxx/include/__hash_table merge=libcxx-reformat
10+
libcxx/include/__locale merge=libcxx-reformat
11+
libcxx/include/__node_handle merge=libcxx-reformat
12+
libcxx/include/__split_buffer merge=libcxx-reformat
13+
libcxx/include/__std_clang_module merge=libcxx-reformat
14+
libcxx/include/__threading_support merge=libcxx-reformat
15+
libcxx/include/__tree merge=libcxx-reformat
16+
libcxx/include/__verbose_abort merge=libcxx-reformat
17+
libcxx/include/algorithm merge=libcxx-reformat
18+
libcxx/include/any merge=libcxx-reformat
19+
libcxx/include/array merge=libcxx-reformat
20+
libcxx/include/atomic merge=libcxx-reformat
21+
libcxx/include/barrier merge=libcxx-reformat
22+
libcxx/include/bit merge=libcxx-reformat
23+
libcxx/include/bitset merge=libcxx-reformat
24+
libcxx/include/cassert merge=libcxx-reformat
25+
libcxx/include/ccomplex merge=libcxx-reformat
26+
libcxx/include/cctype merge=libcxx-reformat
27+
libcxx/include/cerrno merge=libcxx-reformat
28+
libcxx/include/cfenv merge=libcxx-reformat
29+
libcxx/include/cfloat merge=libcxx-reformat
30+
libcxx/include/charconv merge=libcxx-reformat
31+
libcxx/include/chrono merge=libcxx-reformat
32+
libcxx/include/cinttypes merge=libcxx-reformat
33+
libcxx/include/ciso646 merge=libcxx-reformat
34+
libcxx/include/climits merge=libcxx-reformat
35+
libcxx/include/clocale merge=libcxx-reformat
36+
libcxx/include/cmath merge=libcxx-reformat
37+
libcxx/include/codecvt merge=libcxx-reformat
38+
libcxx/include/compare merge=libcxx-reformat
39+
libcxx/include/complex merge=libcxx-reformat
40+
libcxx/include/concepts merge=libcxx-reformat
41+
libcxx/include/condition_variable merge=libcxx-reformat
42+
libcxx/include/coroutine merge=libcxx-reformat
43+
libcxx/include/csetjmp merge=libcxx-reformat
44+
libcxx/include/csignal merge=libcxx-reformat
45+
libcxx/include/cstdarg merge=libcxx-reformat
46+
libcxx/include/cstdbool merge=libcxx-reformat
47+
libcxx/include/cstddef merge=libcxx-reformat
48+
libcxx/include/cstdint merge=libcxx-reformat
49+
libcxx/include/cstdio merge=libcxx-reformat
50+
libcxx/include/cstdlib merge=libcxx-reformat
51+
libcxx/include/cstring merge=libcxx-reformat
52+
libcxx/include/ctgmath merge=libcxx-reformat
53+
libcxx/include/ctime merge=libcxx-reformat
54+
libcxx/include/cuchar merge=libcxx-reformat
55+
libcxx/include/cwchar merge=libcxx-reformat
56+
libcxx/include/cwctype merge=libcxx-reformat
57+
libcxx/include/deque merge=libcxx-reformat
58+
libcxx/include/exception merge=libcxx-reformat
59+
libcxx/include/execution merge=libcxx-reformat
60+
libcxx/include/expected merge=libcxx-reformat
61+
libcxx/include/experimental/__config merge=libcxx-reformat
62+
libcxx/include/experimental/__memory merge=libcxx-reformat
63+
libcxx/include/experimental/deque merge=libcxx-reformat
64+
libcxx/include/experimental/forward_list merge=libcxx-reformat
65+
libcxx/include/experimental/iterator merge=libcxx-reformat
66+
libcxx/include/experimental/list merge=libcxx-reformat
67+
libcxx/include/experimental/map merge=libcxx-reformat
68+
libcxx/include/experimental/memory merge=libcxx-reformat
69+
libcxx/include/experimental/memory_resource merge=libcxx-reformat
70+
libcxx/include/experimental/propagate_const merge=libcxx-reformat
71+
libcxx/include/experimental/regex merge=libcxx-reformat
72+
libcxx/include/experimental/set merge=libcxx-reformat
73+
libcxx/include/experimental/simd merge=libcxx-reformat
74+
libcxx/include/experimental/string merge=libcxx-reformat
75+
libcxx/include/experimental/type_traits merge=libcxx-reformat
76+
libcxx/include/experimental/unordered_map merge=libcxx-reformat
77+
libcxx/include/experimental/unordered_set merge=libcxx-reformat
78+
libcxx/include/experimental/utility merge=libcxx-reformat
79+
libcxx/include/experimental/vector merge=libcxx-reformat
80+
libcxx/include/ext/__hash merge=libcxx-reformat
81+
libcxx/include/ext/hash_map merge=libcxx-reformat
82+
libcxx/include/ext/hash_set merge=libcxx-reformat
83+
libcxx/include/filesystem merge=libcxx-reformat
84+
libcxx/include/format merge=libcxx-reformat
85+
libcxx/include/forward_list merge=libcxx-reformat
86+
libcxx/include/fstream merge=libcxx-reformat
87+
libcxx/include/functional merge=libcxx-reformat
88+
libcxx/include/future merge=libcxx-reformat
89+
libcxx/include/initializer_list merge=libcxx-reformat
90+
libcxx/include/iomanip merge=libcxx-reformat
91+
libcxx/include/ios merge=libcxx-reformat
92+
libcxx/include/iosfwd merge=libcxx-reformat
93+
libcxx/include/iostream merge=libcxx-reformat
94+
libcxx/include/istream merge=libcxx-reformat
95+
libcxx/include/iterator merge=libcxx-reformat
96+
libcxx/include/latch merge=libcxx-reformat
97+
libcxx/include/limits merge=libcxx-reformat
98+
libcxx/include/list merge=libcxx-reformat
99+
libcxx/include/locale merge=libcxx-reformat
100+
libcxx/include/map merge=libcxx-reformat
101+
libcxx/include/mdspan merge=libcxx-reformat
102+
libcxx/include/memory merge=libcxx-reformat
103+
libcxx/include/memory_resource merge=libcxx-reformat
104+
libcxx/include/mutex merge=libcxx-reformat
105+
libcxx/include/new merge=libcxx-reformat
106+
libcxx/include/numbers merge=libcxx-reformat
107+
libcxx/include/numeric merge=libcxx-reformat
108+
libcxx/include/optional merge=libcxx-reformat
109+
libcxx/include/ostream merge=libcxx-reformat
110+
libcxx/include/print merge=libcxx-reformat
111+
libcxx/include/queue merge=libcxx-reformat
112+
libcxx/include/random merge=libcxx-reformat
113+
libcxx/include/ranges merge=libcxx-reformat
114+
libcxx/include/ratio merge=libcxx-reformat
115+
libcxx/include/regex merge=libcxx-reformat
116+
libcxx/include/scoped_allocator merge=libcxx-reformat
117+
libcxx/include/semaphore merge=libcxx-reformat
118+
libcxx/include/set merge=libcxx-reformat
119+
libcxx/include/shared_mutex merge=libcxx-reformat
120+
libcxx/include/source_location merge=libcxx-reformat
121+
libcxx/include/span merge=libcxx-reformat
122+
libcxx/include/sstream merge=libcxx-reformat
123+
libcxx/include/stack merge=libcxx-reformat
124+
libcxx/include/stdexcept merge=libcxx-reformat
125+
libcxx/include/stop_token merge=libcxx-reformat
126+
libcxx/include/streambuf merge=libcxx-reformat
127+
libcxx/include/string merge=libcxx-reformat
128+
libcxx/include/string_view merge=libcxx-reformat
129+
libcxx/include/strstream merge=libcxx-reformat
130+
libcxx/include/syncstream merge=libcxx-reformat
131+
libcxx/include/system_error merge=libcxx-reformat
132+
libcxx/include/thread merge=libcxx-reformat
133+
libcxx/include/tuple merge=libcxx-reformat
134+
libcxx/include/type_traits merge=libcxx-reformat
135+
libcxx/include/typeindex merge=libcxx-reformat
136+
libcxx/include/typeinfo merge=libcxx-reformat
137+
libcxx/include/unordered_map merge=libcxx-reformat
138+
libcxx/include/unordered_set merge=libcxx-reformat
139+
libcxx/include/utility merge=libcxx-reformat
140+
libcxx/include/valarray merge=libcxx-reformat
141+
libcxx/include/variant merge=libcxx-reformat
142+
libcxx/include/vector merge=libcxx-reformat
143+
libcxx/include/version merge=libcxx-reformat

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ jobs:
185185
std_modules: 'OFF'
186186
# Use a larger machine for MSAN to avoid timeout and memory allocation issues.
187187
- config: 'generic-msan'
188-
machine: libcxx-runners-32-set
188+
machine: libcxx-runners-8-set
189189
std_modules: 'OFF'
190190
runs-on: ${{ matrix.machine }}
191191
steps:

.github/workflows/release-binaries.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ on:
1515
description: 'Tag to build'
1616
required: true
1717
type: string
18+
schedule:
19+
# * is a special character in YAML so you have to quote this string
20+
- cron: '0 8 1 * *'
1821

1922
permissions:
2023
contents: read # Default everything to read-only
@@ -26,7 +29,7 @@ jobs:
2629
if: github.repository == 'llvm/llvm-project'
2730
outputs:
2831
release-version: ${{ steps.validate-tag.outputs.release-version }}
29-
release: ${{ steps.validate-tag.outputs.release }}
32+
flags: ${{ steps.validate-tag.outputs.flags }}
3033
build-dir: ${{ steps.validate-tag.outputs.build-dir }}
3134
rc-flags: ${{ steps.validate-tag.outputs.rc-flags }}
3235
ref: ${{ steps.validate-tag.outputs.ref }}
@@ -50,6 +53,11 @@ jobs:
5053
tag="${{ github.ref_name }}"
5154
trimmed=$(echo ${{ inputs.tag }} | xargs)
5255
[[ "$trimmed" != "" ]] && tag="$trimmed"
56+
if [ "$tag" = "main" ]; then
57+
# If tag is main, then we've been triggered by a scheduled so pass so
58+
# use the head commit as the tag.
59+
tag=`git rev-parse HEAD`
60+
fi
5361
if [ -n "${{ inputs.upload }}" ]; then
5462
upload="${{ inputs.upload }}"
5563
else
@@ -71,7 +79,7 @@ jobs:
7179
- name: Checkout LLVM
7280
uses: actions/checkout@v4
7381
with:
74-
ref: ${{ inputs.tag || github.ref_name }}
82+
ref: ${{ needs.prepare.outputs.ref }}
7583

7684
- name: Install Ninja
7785
uses: llvm/actions/install-ninja@main
@@ -140,8 +148,7 @@ jobs:
140148
- name: Build and test release
141149
run: |
142150
${{ needs.prepare.outputs.build-dir }}/llvm-project/llvm/utils/release/test-release.sh \
143-
-release ${{ needs.prepare.outputs.release }} \
144-
${{ needs.prepare.outputs.rc-flags }} \
151+
${{ needs.prepare.outputs.flags }} \
145152
-triple ${{ matrix.target.triple }} \
146153
-use-ninja \
147154
-no-checkout \

.github/workflows/set-release-binary-outputs.sh

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,32 @@ if [[ "$github_user" != "tstellar" && "$github_user" != "tru" ]]; then
1616
echo "ERROR: User not allowed: $github_user"
1717
exit 1
1818
fi
19-
pattern='^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
20-
echo "$tag" | grep -e $pattern
21-
if [ $? != 0 ]; then
22-
echo "ERROR: Tag '$tag' doesn't match pattern: $pattern"
23-
exit 1
19+
20+
if echo $tag | grep -e '^[0-9a-f]\+$'; then
21+
# This is a plain commit.
22+
# TODO: Don't hardcode this.
23+
release_version="18"
24+
build_dir="$tag"
25+
upload='false'
26+
ref="$tag"
27+
flags="-git-ref $tag -test-asserts"
28+
29+
else
30+
31+
pattern='^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
32+
echo "$tag" | grep -e $pattern
33+
if [ $? != 0 ]; then
34+
echo "ERROR: Tag '$tag' doesn't match pattern: $pattern"
35+
exit 1
36+
fi
37+
release_version=`echo "$tag" | sed 's/llvmorg-//g'`
38+
release=`echo "$release_version" | sed 's/-.*//g'`
39+
build_dir=`echo "$release_version" | sed 's,^[^-]\+,final,' | sed 's,[^-]\+-rc\(.\+\),rc\1,'`
40+
rc_flags=`echo "$release_version" | sed 's,^[^-]\+,-final,' | sed 's,[^-]\+-rc\(.\+\),-rc \1 -test-asserts,' | sed 's,--,-,'`
41+
flags="-release $release $rc_flags"
2442
fi
25-
release_version=`echo "$tag" | sed 's/llvmorg-//g'`
26-
release=`echo "$release_version" | sed 's/-.*//g'`
27-
build_dir=`echo "$release_version" | sed 's,^[^-]\+,final,' | sed 's,[^-]\+-rc\(.\+\),rc\1,'`
28-
rc_flags=`echo "$release_version" | sed 's,^[^-]\+,-final,' | sed 's,[^-]\+-rc\(.\+\),-rc \1 -test-asserts,' | sed 's,--,-,'`
2943
echo "release-version=$release_version" >> $GITHUB_OUTPUT
30-
echo "release=$release" >> $GITHUB_OUTPUT
3144
echo "build-dir=$build_dir" >> $GITHUB_OUTPUT
32-
echo "rc-flags=$rc_flags" >> $GITHUB_OUTPUT
45+
echo "flags=$flags" >> $GITHUB_OUTPUT
3346
echo "upload=$upload" >> $GITHUB_OUTPUT
3447
echo "ref=$tag" >> $GITHUB_OUTPUT

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Martin Storsjö <[email protected]>
4343
Med Ismail Bennani <[email protected]> <[email protected]>
4444
Med Ismail Bennani <[email protected]> <[email protected]>
4545
Ramkumar Ramachandra <[email protected]> <[email protected]>
46+
Ramkumar Ramachandra <[email protected]> <[email protected]>
4647
Saleem Abdulrasool <[email protected]>
4748
4849
Wang Pengcheng <[email protected]>

bolt/include/bolt/Core/BinaryContext.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -900,8 +900,8 @@ class BinaryContext {
900900
/// Return true if \p SymbolName was generated internally and was not present
901901
/// in the input binary.
902902
bool isInternalSymbolName(const StringRef Name) {
903-
return Name.startswith("SYMBOLat") || Name.startswith("DATAat") ||
904-
Name.startswith("HOLEat");
903+
return Name.starts_with("SYMBOLat") || Name.starts_with("DATAat") ||
904+
Name.starts_with("HOLEat");
905905
}
906906

907907
MCSymbol *getHotTextStartSymbol() const {

bolt/include/bolt/Core/DIEBuilder.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ namespace llvm {
3333

3434
namespace bolt {
3535
class DIEStreamer;
36+
class DebugStrOffsetsWriter;
3637

3738
class DIEBuilder {
3839
friend DIEStreamer;
@@ -266,7 +267,8 @@ class DIEBuilder {
266267
ProcessingType getCurrentProcessingState() { return getState().Type; }
267268

268269
/// Constructs IR for Type Units.
269-
void buildTypeUnits(const bool Init = true);
270+
void buildTypeUnits(DebugStrOffsetsWriter *StrOffsetWriter = nullptr,
271+
const bool Init = true);
270272
/// Constructs IR for all the CUs.
271273
void buildCompileUnits(const bool Init = true);
272274
/// Constructs IR for CUs in a vector.

bolt/include/bolt/Core/DebugData.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -436,10 +436,6 @@ class DebugStrOffsetsWriter {
436436
StrOffsetsStream = std::make_unique<raw_svector_ostream>(*StrOffsetsBuffer);
437437
}
438438

439-
/// Initializes Buffer and Stream.
440-
void initialize(const DWARFSection &StrOffsetsSection,
441-
const std::optional<StrOffsetsContributionDescriptor> Contr);
442-
443439
/// Update Str offset in .debug_str in .debug_str_offsets.
444440
void updateAddressMap(uint32_t Index, uint32_t Address);
445441

@@ -455,9 +451,13 @@ class DebugStrOffsetsWriter {
455451
}
456452

457453
private:
454+
/// Initializes Buffer and Stream.
455+
void initialize(DWARFUnit &Unit);
456+
458457
std::unique_ptr<DebugStrOffsetsBufferVector> StrOffsetsBuffer;
459458
std::unique_ptr<raw_svector_ostream> StrOffsetsStream;
460459
std::map<uint32_t, uint32_t> IndexToAddressMap;
460+
std::vector<uint32_t> StrOffsets;
461461
std::unordered_map<uint64_t, uint64_t> ProcessedBaseOffsets;
462462
bool StrOffsetSectionWasModified = false;
463463
};

bolt/lib/Core/BinaryContext.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,7 +1086,7 @@ void BinaryContext::generateSymbolHashes() {
10861086
auto isPadding = [](const BinaryData &BD) {
10871087
StringRef Contents = BD.getSection().getContents();
10881088
StringRef SymData = Contents.substr(BD.getOffset(), BD.getSize());
1089-
return (BD.getName().startswith("HOLEat") ||
1089+
return (BD.getName().starts_with("HOLEat") ||
10901090
SymData.find_first_not_of(0) == StringRef::npos);
10911091
};
10921092

@@ -1326,8 +1326,8 @@ void BinaryContext::postProcessSymbolTable() {
13261326
bool Valid = true;
13271327
for (auto &Entry : BinaryDataMap) {
13281328
BinaryData *BD = Entry.second;
1329-
if ((BD->getName().startswith("SYMBOLat") ||
1330-
BD->getName().startswith("DATAat")) &&
1329+
if ((BD->getName().starts_with("SYMBOLat") ||
1330+
BD->getName().starts_with("DATAat")) &&
13311331
!BD->getParent() && !BD->getSize() && !BD->isAbsolute() &&
13321332
BD->getSection()) {
13331333
errs() << "BOLT-WARNING: zero-sized top level symbol: " << *BD << "\n";
@@ -1410,9 +1410,9 @@ void BinaryContext::fixBinaryDataHoles() {
14101410
auto isNotHole = [&Section](const binary_data_iterator &Itr) {
14111411
BinaryData *BD = Itr->second;
14121412
bool isHole = (!BD->getParent() && !BD->getSize() && BD->isObject() &&
1413-
(BD->getName().startswith("SYMBOLat0x") ||
1414-
BD->getName().startswith("DATAat0x") ||
1415-
BD->getName().startswith("ANONYMOUS")));
1413+
(BD->getName().starts_with("SYMBOLat0x") ||
1414+
BD->getName().starts_with("DATAat0x") ||
1415+
BD->getName().starts_with("ANONYMOUS")));
14161416
return !isHole && BD->getSection() == Section && !BD->getParent();
14171417
};
14181418

@@ -1818,14 +1818,14 @@ MarkerSymType BinaryContext::getMarkerType(const SymbolRef &Symbol) const {
18181818
if (*TypeOrError != SymbolRef::ST_Unknown)
18191819
return MarkerSymType::NONE;
18201820

1821-
if (*NameOrError == "$x" || NameOrError->startswith("$x."))
1821+
if (*NameOrError == "$x" || NameOrError->starts_with("$x."))
18221822
return MarkerSymType::CODE;
18231823

18241824
// $x<ISA>
1825-
if (isRISCV() && NameOrError->startswith("$x"))
1825+
if (isRISCV() && NameOrError->starts_with("$x"))
18261826
return MarkerSymType::CODE;
18271827

1828-
if (*NameOrError == "$d" || NameOrError->startswith("$d."))
1828+
if (*NameOrError == "$d" || NameOrError->starts_with("$d."))
18291829
return MarkerSymType::DATA;
18301830

18311831
return MarkerSymType::NONE;

bolt/lib/Core/BinaryData.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ bool BinaryData::hasNameRegex(StringRef NameRegex) const {
6565

6666
bool BinaryData::nameStartsWith(StringRef Prefix) const {
6767
for (const MCSymbol *Symbol : Symbols)
68-
if (Symbol->getName().startswith(Prefix))
68+
if (Symbol->getName().starts_with(Prefix))
6969
return true;
7070
return false;
7171
}

0 commit comments

Comments
 (0)