Skip to content

Commit 8c93484

Browse files
author
iclsrc
committed
Merge from 'main' to 'sycl-web' (64 commits)
2 parents 6955b58 + 510fb87 commit 8c93484

File tree

279 files changed

+7309
-7288
lines changed

Some content is hidden

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

279 files changed

+7309
-7288
lines changed

.github/workflows/release-binaries.yml

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,52 @@ jobs:
5757
fi
5858
bash .github/workflows/set-release-binary-outputs.sh "${{ github.actor }}" "$tag" "$upload"
5959
60+
# Try to get around the 6 hour timeout by first running a job to fill
61+
# the build cache.
62+
fill-cache:
63+
name: "Fill Cache ${{ matrix.os }}"
64+
needs: prepare
65+
runs-on: ${{ matrix.os }}
66+
strategy:
67+
matrix:
68+
os:
69+
- ubuntu-22.04
70+
steps:
71+
- name: Checkout LLVM
72+
uses: actions/checkout@v4
73+
with:
74+
ref: ${{ inputs.tag || github.ref_name }}
75+
76+
- name: Install Ninja
77+
uses: llvm/actions/install-ninja@main
78+
79+
- name: Setup sccache
80+
uses: hendrikmuhs/ccache-action@v1
81+
with:
82+
max-size: 250M
83+
key: sccache-${{ matrix.os }}-release
84+
variant: sccache
85+
86+
- name: Build Clang
87+
run: |
88+
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
89+
ninja -v -C build
90+
91+
6092
build-binaries:
6193
name: ${{ matrix.target.triple }}
6294
permissions:
6395
contents: write # To upload assets to release.
64-
needs: prepare
96+
needs:
97+
- prepare
98+
- fill-cache
6599
runs-on: ${{ matrix.target.runs-on }}
66100
strategy:
67101
fail-fast: false
68102
matrix:
69103
target:
70104
- triple: x86_64-linux-gnu-ubuntu-22.04
105+
os: ubuntu-22.04
71106
runs-on: ubuntu-22.04-16x64
72107
debian-build-deps: >
73108
chrpath
@@ -81,6 +116,14 @@ jobs:
81116
ref: ${{ needs.prepare.outputs.ref }}
82117
path: ${{ needs.prepare.outputs.build-dir }}/llvm-project
83118

119+
- name: Setup sccache
120+
uses: hendrikmuhs/ccache-action@v1
121+
with:
122+
max-size: 250M
123+
key: sccache-${{ matrix.target.os }}-release
124+
save: false
125+
variant: sccache
126+
84127
- name: Install Brew build dependencies
85128
if: matrix.target.brew-build-deps != ''
86129
run: brew install ${{ matrix.target.brew-build-deps }}
@@ -102,7 +145,8 @@ jobs:
102145
-triple ${{ matrix.target.triple }} \
103146
-use-ninja \
104147
-no-checkout \
105-
-no-test-suite
148+
-no-test-suite \
149+
-configure-flags "-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
106150
107151
- name: Upload binaries
108152
if: ${{ always() && needs.prepare.outputs.upload == 'true' }}

bolt/lib/Profile/YAMLProfileReader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ static llvm::cl::opt<bool>
3131
llvm::cl::opt<bool> ProfileUseDFS("profile-use-dfs",
3232
cl::desc("use DFS order for YAML profile"),
3333
cl::Hidden, cl::cat(BoltOptCategory));
34-
}
34+
} // namespace opts
3535

3636
namespace llvm {
3737
namespace bolt {
@@ -354,7 +354,7 @@ Error YAMLProfileReader::readProfile(BinaryContext &BC) {
354354
matchProfileToFunction(YamlBF, Function);
355355
}
356356

357-
for (auto &[CommonName, LTOProfiles]: LTOCommonNameMap) {
357+
for (const auto &[CommonName, LTOProfiles] : LTOCommonNameMap) {
358358
if (!LTOCommonNameFunctionMap.contains(CommonName))
359359
continue;
360360
std::unordered_set<BinaryFunction *> &Functions =

clang/docs/ReleaseNotes.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,9 @@ Bug Fixes in This Version
610610
inside a lambda. (`#61460 <https://github.com/llvm/llvm-project/issues/61460>`_)
611611
- Fix crash during instantiation of some class template specializations within class
612612
templates. Fixes (`#70375 <https://github.com/llvm/llvm-project/issues/70375>`_)
613+
- Fix crash during code generation of C++ coroutine initial suspend when the return
614+
type of await_resume is not trivially destructible.
615+
Fixes (`#63803 <https://github.com/llvm/llvm-project/issues/63803>`_)
613616

614617
Bug Fixes to Compiler Builtins
615618
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

clang/include/clang/Basic/DiagnosticParseKinds.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1362,7 +1362,7 @@ def warn_pragma_acc_unimplemented_clause_parsing
13621362
: Warning<"OpenACC clause parsing not yet implemented">,
13631363
InGroup<SourceUsesOpenACC>;
13641364
def err_acc_invalid_directive
1365-
: Error<"invalid OpenACC directive '%0'">;
1365+
: Error<"invalid OpenACC directive '%select{%1|%1 %2}0'">;
13661366
def err_acc_missing_directive : Error<"expected OpenACC directive">;
13671367

13681368
// OpenMP support.

clang/include/clang/Basic/OpenACCKinds.h

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@ enum class OpenACCDirectiveKind {
2424
Serial,
2525
Kernels,
2626

27-
// Data Environment.
27+
// Data Environment. "enter data" and "exit data" are also referred to in the
28+
// Executable Directives section, but just as a back reference to the Data
29+
// Environment.
2830
Data,
29-
// FIXME: 'enter data', 'exit data'.
31+
EnterData,
32+
ExitData,
3033
HostData,
3134

3235
// Misc.
@@ -38,7 +41,8 @@ enum class OpenACCDirectiveKind {
3841
SerialLoop,
3942
KernelsLoop,
4043

41-
// FIXME: atomic Construct variants.
44+
// Atomic Construct.
45+
Atomic,
4246

4347
// Declare Directive.
4448
Declare,
@@ -56,6 +60,14 @@ enum class OpenACCDirectiveKind {
5660
// Invalid.
5761
Invalid,
5862
};
63+
64+
enum class OpenACCAtomicKind {
65+
Read,
66+
Write,
67+
Update,
68+
Capture,
69+
Invalid,
70+
};
5971
} // namespace clang
6072

6173
#endif // LLVM_CLANG_BASIC_OPENACCKINDS_H

clang/include/clang/Basic/arm_sve.td

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,12 @@ let TargetGuard = "sve2p1" in {
319319
defm SVLD2Q_VNUM : StructLoad<"svld2q_vnum[_{2}]", "2Pcl", "aarch64_sve_ld2q_sret">;
320320
defm SVLD3Q_VNUM : StructLoad<"svld3q_vnum[_{2}]", "3Pcl", "aarch64_sve_ld3q_sret">;
321321
defm SVLD4Q_VNUM : StructLoad<"svld4q_vnum[_{2}]", "4Pcl", "aarch64_sve_ld4q_sret">;
322+
323+
// Load quadwords (scalar base + vector index)
324+
def SVLD1Q_GATHER_INDICES_U : MInst<"svld1q_gather_[{3}]index[_{d}]", "dPcg", "sUsiUilUlbhfd", [IsGatherLoad], MemEltTyDefault, "aarch64_sve_ld1q_gather_index">;
325+
326+
// Load quadwords (vector base + scalar index)
327+
def SVLD1Q_GATHER_INDEX_S : MInst<"svld1q_gather[_{2}base]_index_{d}", "dPgl", "sUsiUilUlbhfd", [IsGatherLoad], MemEltTyDefault, "aarch64_sve_ld1q_gather_scalar_offset">;
322328
}
323329

324330
////////////////////////////////////////////////////////////////////////////////
@@ -464,6 +470,12 @@ let TargetGuard = "sve2p1" in {
464470
defm SVST2Q_VNUM : StructStore<"svst2q_vnum[_{d}]", "vPcl2", "aarch64_sve_st2q">;
465471
defm SVST3Q_VNUM : StructStore<"svst3q_vnum[_{d}]", "vPcl3", "aarch64_sve_st3q">;
466472
defm SVST4Q_VNUM : StructStore<"svst4q_vnum[_{d}]", "vPcl4", "aarch64_sve_st4q">;
473+
474+
// Scatter store quadwords (scalar base + vector index)
475+
def SVST1Q_SCATTER_INDICES_U : MInst<"svst1q_scatter_[{3}]index[_{d}]", "vPpgd", "sUsiUilUlbhfd", [IsScatterStore], MemEltTyDefault, "aarch64_sve_st1q_scatter_index">;
476+
477+
// Scatter store quadwords (vector base + scalar index)
478+
def SVST1Q_SCATTER_INDEX_S : MInst<"svst1q_scatter[_{2}base]_index[_{d}]", "vPgld", "sUsiUilUlbhfd", [IsScatterStore], MemEltTyDefault, "aarch64_sve_st1q_scatter_scalar_offset">;
467479
}
468480

469481
////////////////////////////////////////////////////////////////////////////////
@@ -2027,23 +2039,7 @@ def SVCNTP_COUNT : SInst<"svcntp_{d}", "n}i", "QcQsQiQl", MergeNone, "aarch64_sv
20272039
defm SVREVD : SInstZPZ<"svrevd", "csilUcUsUiUl", "aarch64_sve_revd">;
20282040
}
20292041

2030-
2031-
let TargetGuard = "sve2p1,b16b16" in {
2032-
defm SVMUL_BF : SInstZPZZ<"svmul", "b", "aarch64_sve_fmul", "aarch64_sve_fmul_u">;
2033-
defm SVADD_BF : SInstZPZZ<"svadd", "b", "aarch64_sve_fadd", "aarch64_sve_fadd_u">;
2034-
defm SVSUB_BF : SInstZPZZ<"svsub", "b", "aarch64_sve_fsub", "aarch64_sve_fsub_u">;
2035-
defm SVMAXNM_BF : SInstZPZZ<"svmaxnm","b", "aarch64_sve_fmaxnm", "aarch64_sve_fmaxnm_u">;
2036-
defm SVMINNM_BF : SInstZPZZ<"svminnm","b", "aarch64_sve_fminnm", "aarch64_sve_fminnm_u">;
2037-
defm SVMAX_BF : SInstZPZZ<"svmax", "b", "aarch64_sve_fmax", "aarch64_sve_fmax_u">;
2038-
defm SVMIN_BF : SInstZPZZ<"svmin", "b", "aarch64_sve_fmin", "aarch64_sve_fmin_u">;
2039-
defm SVMLA_BF : SInstZPZZZ<"svmla", "b", "aarch64_sve_fmla", "aarch64_sve_fmla_u", []>;
2040-
defm SVMLS_BF : SInstZPZZZ<"svmls", "b", "aarch64_sve_fmls", "aarch64_sve_fmls_u", []>;
2041-
def SVMLA_LANE_BF : SInst<"svmla_lane[_{d}]", "ddddi", "b", MergeNone, "aarch64_sve_fmla_lane", [], [ImmCheck<3, ImmCheckLaneIndex, 2>]>;
2042-
def SVMLS_LANE_BF : SInst<"svmls_lane[_{d}]", "ddddi", "b", MergeNone, "aarch64_sve_fmls_lane", [], [ImmCheck<3, ImmCheckLaneIndex, 2>]>;
2043-
def SVMUL_LANE_BF : SInst<"svmul_lane[_{d}]", "dddi", "b", MergeNone, "aarch64_sve_fmul_lane", [], [ImmCheck<2, ImmCheckLaneIndex, 1>]>;
2044-
def SVFCLAMP_BF : SInst<"svclamp[_{d}]", "dddd", "b", MergeNone, "aarch64_sve_fclamp", [], []>;
2045-
} //sve2p1,b16b16
2046-
2042+
////////////////////////////////////////////////////////////////////////////////
20472043
// SME2
20482044

20492045
// SME intrinsics which operate only on vectors and do not require ZA should be added here,

0 commit comments

Comments
 (0)