Skip to content

Commit a7064b9

Browse files
committed
merge main into amd-staging
2 parents 27ea1d1 + bd96fa7 commit a7064b9

File tree

201 files changed

+4307
-1533
lines changed

Some content is hidden

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

201 files changed

+4307
-1533
lines changed

clang/include/clang/AST/OpenACCClause.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,9 @@ class OpenACCWaitClause final
565565
llvm::ArrayRef<Expr *> getQueueIdExprs() const {
566566
return OpenACCClauseWithExprs::getExprs().drop_front();
567567
}
568+
// If this is a plain `wait` (no parens) this returns 'false'. Else Sema/Parse
569+
// ensures we have at least one QueueId expression.
570+
bool hasExprs() const { return getLParenLoc().isValid(); }
568571
};
569572

570573
class OpenACCNumGangsClause final

clang/include/clang/Basic/BuiltinHeaders.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
//===----------------------------------------------------------------------===//
1313

1414
HEADER(NO_HEADER, nullptr)
15-
HEADER(ARMACLE_H, "arm_acle.h")
1615
HEADER(BLOCKS_H, "Blocks.h")
1716
HEADER(COMPLEX_H, "complex.h")
1817
HEADER(CTYPE_H, "ctype.h")

clang/include/clang/Basic/BuiltinsAArch64.def

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,6 @@ BUILTIN(__builtin_arm_wfi, "v", "")
5050
BUILTIN(__builtin_arm_sev, "v", "")
5151
BUILTIN(__builtin_arm_sevl, "v", "")
5252
BUILTIN(__builtin_arm_chkfeat, "WUiWUi", "")
53-
TARGET_HEADER_BUILTIN(__yield, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
54-
TARGET_HEADER_BUILTIN(__wfe, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
55-
TARGET_HEADER_BUILTIN(__wfi, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
56-
TARGET_HEADER_BUILTIN(__sev, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
57-
TARGET_HEADER_BUILTIN(__sevl, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
5853

5954
// Like __builtin_trap but provide an 16-bit immediate reason code (which goes into `brk #N`).
6055
BUILTIN(__builtin_arm_trap, "vUIs", "nr")
@@ -87,9 +82,6 @@ TARGET_BUILTIN(__builtin_arm_mops_memset_tag, "v*v*iz", "", "mte,mops")
8782
BUILTIN(__builtin_arm_dmb, "vUi", "nc")
8883
BUILTIN(__builtin_arm_dsb, "vUi", "nc")
8984
BUILTIN(__builtin_arm_isb, "vUi", "nc")
90-
TARGET_HEADER_BUILTIN(__dmb, "vUi", "nch", ARMACLE_H, ALL_LANGUAGES, "")
91-
TARGET_HEADER_BUILTIN(__dsb, "vUi", "nch", ARMACLE_H, ALL_LANGUAGES, "")
92-
TARGET_HEADER_BUILTIN(__isb, "vUi", "nch", ARMACLE_H, ALL_LANGUAGES, "")
9385

9486
TARGET_BUILTIN(__builtin_arm_jcvt, "Zid", "nc", "v8.3a")
9587

@@ -106,6 +98,16 @@ BUILTIN(__builtin_arm_wsr64, "vcC*WUi", "nc")
10698
TARGET_BUILTIN(__builtin_arm_wsr128, "vcC*LLLUi", "nc", "d128")
10799
BUILTIN(__builtin_arm_wsrp, "vcC*vC*", "nc")
108100

101+
// MSVC
102+
LANGBUILTIN(__dmb, "vUi", "nc", ALL_MS_LANGUAGES)
103+
LANGBUILTIN(__dsb, "vUi", "nc", ALL_MS_LANGUAGES)
104+
LANGBUILTIN(__isb, "vUi", "nc", ALL_MS_LANGUAGES)
105+
LANGBUILTIN(__yield, "v", "", ALL_MS_LANGUAGES)
106+
LANGBUILTIN(__wfe, "v", "", ALL_MS_LANGUAGES)
107+
LANGBUILTIN(__wfi, "v", "", ALL_MS_LANGUAGES)
108+
LANGBUILTIN(__sev, "v", "", ALL_MS_LANGUAGES)
109+
LANGBUILTIN(__sevl, "v", "", ALL_MS_LANGUAGES)
110+
109111
// Misc
110112
BUILTIN(__builtin_sponentry, "v*", "c")
111113

clang/include/clang/Basic/BuiltinsARM.def

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -186,19 +186,11 @@ BUILTIN(__builtin_arm_wfi, "v", "")
186186
BUILTIN(__builtin_arm_sev, "v", "")
187187
BUILTIN(__builtin_arm_sevl, "v", "")
188188
BUILTIN(__builtin_arm_dbg, "vUi", "")
189-
TARGET_HEADER_BUILTIN(__yield, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
190-
TARGET_HEADER_BUILTIN(__wfe, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
191-
TARGET_HEADER_BUILTIN(__wfi, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
192-
TARGET_HEADER_BUILTIN(__sev, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
193-
TARGET_HEADER_BUILTIN(__sevl, "v", "h", ARMACLE_H, ALL_LANGUAGES, "")
194189

195190
// Data barrier
196191
BUILTIN(__builtin_arm_dmb, "vUi", "nc")
197192
BUILTIN(__builtin_arm_dsb, "vUi", "nc")
198193
BUILTIN(__builtin_arm_isb, "vUi", "nc")
199-
TARGET_HEADER_BUILTIN(__dmb, "vUi", "nch", ARMACLE_H, ALL_LANGUAGES, "")
200-
TARGET_HEADER_BUILTIN(__dsb, "vUi", "nch", ARMACLE_H, ALL_LANGUAGES, "")
201-
TARGET_HEADER_BUILTIN(__isb, "vUi", "nch", ARMACLE_H, ALL_LANGUAGES, "")
202194

203195
// Prefetch
204196
BUILTIN(__builtin_arm_prefetch, "vvC*UiUi", "nc")
@@ -217,6 +209,15 @@ BUILTIN(__builtin_sponentry, "v*", "c")
217209
// MSVC
218210
LANGBUILTIN(__emit, "vIUiC", "", ALL_MS_LANGUAGES)
219211

212+
LANGBUILTIN(__yield, "v", "", ALL_MS_LANGUAGES)
213+
LANGBUILTIN(__wfe, "v", "", ALL_MS_LANGUAGES)
214+
LANGBUILTIN(__wfi, "v", "", ALL_MS_LANGUAGES)
215+
LANGBUILTIN(__sev, "v", "", ALL_MS_LANGUAGES)
216+
LANGBUILTIN(__sevl, "v", "", ALL_MS_LANGUAGES)
217+
218+
LANGBUILTIN(__dmb, "vUi", "nc", ALL_MS_LANGUAGES)
219+
LANGBUILTIN(__dsb, "vUi", "nc", ALL_MS_LANGUAGES)
220+
LANGBUILTIN(__isb, "vUi", "nc", ALL_MS_LANGUAGES)
220221
LANGBUILTIN(__ldrexd, "WiWiCD*", "", ALL_MS_LANGUAGES)
221222
LANGBUILTIN(_MoveFromCoprocessor, "UiIUiIUiIUiIUiIUi", "", ALL_MS_LANGUAGES)
222223
LANGBUILTIN(_MoveFromCoprocessor2, "UiIUiIUiIUiIUiIUi", "", ALL_MS_LANGUAGES)

clang/include/clang/Basic/Cuda.h

Lines changed: 2 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#ifndef LLVM_CLANG_BASIC_CUDA_H
1010
#define LLVM_CLANG_BASIC_CUDA_H
1111

12+
#include "clang/Basic/OffloadArch.h"
13+
1214
namespace llvm {
1315
class StringRef;
1416
class Twine;
@@ -54,98 +56,6 @@ const char *CudaVersionToString(CudaVersion V);
5456
// Input is "Major.Minor"
5557
CudaVersion CudaStringToVersion(const llvm::Twine &S);
5658

57-
enum class OffloadArch {
58-
UNUSED,
59-
UNKNOWN,
60-
// TODO: Deprecate and remove GPU architectures older than sm_52.
61-
SM_20,
62-
SM_21,
63-
SM_30,
64-
// This has a name conflict with sys/mac.h on AIX, rename it as a workaround.
65-
SM_32_,
66-
SM_35,
67-
SM_37,
68-
SM_50,
69-
SM_52,
70-
SM_53,
71-
SM_60,
72-
SM_61,
73-
SM_62,
74-
SM_70,
75-
SM_72,
76-
SM_75,
77-
SM_80,
78-
SM_86,
79-
SM_87,
80-
SM_89,
81-
SM_90,
82-
SM_90a,
83-
SM_100,
84-
SM_100a,
85-
SM_101,
86-
SM_101a,
87-
SM_120,
88-
SM_120a,
89-
GFX600,
90-
GFX601,
91-
GFX602,
92-
GFX700,
93-
GFX701,
94-
GFX702,
95-
GFX703,
96-
GFX704,
97-
GFX705,
98-
GFX801,
99-
GFX802,
100-
GFX803,
101-
GFX805,
102-
GFX810,
103-
GFX9_GENERIC,
104-
GFX900,
105-
GFX902,
106-
GFX904,
107-
GFX906,
108-
GFX908,
109-
GFX909,
110-
GFX90a,
111-
GFX90c,
112-
GFX9_4_GENERIC,
113-
GFX942,
114-
GFX950,
115-
GFX10_1_GENERIC,
116-
GFX1010,
117-
GFX1011,
118-
GFX1012,
119-
GFX1013,
120-
GFX10_3_GENERIC,
121-
GFX1030,
122-
GFX1031,
123-
GFX1032,
124-
GFX1033,
125-
GFX1034,
126-
GFX1035,
127-
GFX1036,
128-
GFX11_GENERIC,
129-
GFX1100,
130-
GFX1101,
131-
GFX1102,
132-
GFX1103,
133-
GFX1150,
134-
GFX1151,
135-
GFX1152,
136-
GFX1153,
137-
GFX12_GENERIC,
138-
GFX1200,
139-
GFX1201,
140-
AMDGCNSPIRV,
141-
Generic, // A processor model named 'generic' if the target backend defines a
142-
// public one.
143-
LAST,
144-
145-
CudaDefault = OffloadArch::SM_52,
146-
HIPDefault = OffloadArch::GFX906,
147-
};
148-
14959
enum class CUDAFunctionTarget {
15060
Device,
15161
Global,
@@ -154,21 +64,6 @@ enum class CUDAFunctionTarget {
15464
InvalidTarget
15565
};
15666

157-
static inline bool IsNVIDIAOffloadArch(OffloadArch A) {
158-
return A >= OffloadArch::SM_20 && A < OffloadArch::GFX600;
159-
}
160-
161-
static inline bool IsAMDOffloadArch(OffloadArch A) {
162-
// Generic processor model is for testing only.
163-
return A >= OffloadArch::GFX600 && A < OffloadArch::Generic;
164-
}
165-
166-
const char *OffloadArchToString(OffloadArch A);
167-
const char *OffloadArchToVirtualArchString(OffloadArch A);
168-
169-
// The input should have the form "sm_20".
170-
OffloadArch StringToOffloadArch(llvm::StringRef S);
171-
17267
/// Get the earliest CudaVersion that supports the given OffloadArch.
17368
CudaVersion MinVersionForOffloadArch(OffloadArch A);
17469

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
//===--- OffloadArch.h - Definition of offloading architectures --- C++ -*-===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#ifndef LLVM_CLANG_BASIC_OFFLOADARCH_H
10+
#define LLVM_CLANG_BASIC_OFFLOADARCH_H
11+
12+
namespace llvm {
13+
class StringRef;
14+
} // namespace llvm
15+
16+
namespace clang {
17+
18+
enum class OffloadArch {
19+
UNUSED,
20+
UNKNOWN,
21+
// TODO: Deprecate and remove GPU architectures older than sm_52.
22+
SM_20,
23+
SM_21,
24+
SM_30,
25+
// This has a name conflict with sys/mac.h on AIX, rename it as a workaround.
26+
SM_32_,
27+
SM_35,
28+
SM_37,
29+
SM_50,
30+
SM_52,
31+
SM_53,
32+
SM_60,
33+
SM_61,
34+
SM_62,
35+
SM_70,
36+
SM_72,
37+
SM_75,
38+
SM_80,
39+
SM_86,
40+
SM_87,
41+
SM_89,
42+
SM_90,
43+
SM_90a,
44+
SM_100,
45+
SM_100a,
46+
SM_101,
47+
SM_101a,
48+
SM_120,
49+
SM_120a,
50+
GFX600,
51+
GFX601,
52+
GFX602,
53+
GFX700,
54+
GFX701,
55+
GFX702,
56+
GFX703,
57+
GFX704,
58+
GFX705,
59+
GFX801,
60+
GFX802,
61+
GFX803,
62+
GFX805,
63+
GFX810,
64+
GFX9_GENERIC,
65+
GFX900,
66+
GFX902,
67+
GFX904,
68+
GFX906,
69+
GFX908,
70+
GFX909,
71+
GFX90a,
72+
GFX90c,
73+
GFX9_4_GENERIC,
74+
GFX942,
75+
GFX950,
76+
GFX10_1_GENERIC,
77+
GFX1010,
78+
GFX1011,
79+
GFX1012,
80+
GFX1013,
81+
GFX10_3_GENERIC,
82+
GFX1030,
83+
GFX1031,
84+
GFX1032,
85+
GFX1033,
86+
GFX1034,
87+
GFX1035,
88+
GFX1036,
89+
GFX11_GENERIC,
90+
GFX1100,
91+
GFX1101,
92+
GFX1102,
93+
GFX1103,
94+
GFX1150,
95+
GFX1151,
96+
GFX1152,
97+
GFX1153,
98+
GFX12_GENERIC,
99+
GFX1200,
100+
GFX1201,
101+
AMDGCNSPIRV,
102+
Generic, // A processor model named 'generic' if the target backend defines a
103+
// public one.
104+
LAST,
105+
106+
CudaDefault = OffloadArch::SM_52,
107+
HIPDefault = OffloadArch::GFX906,
108+
};
109+
110+
static inline bool IsNVIDIAOffloadArch(OffloadArch A) {
111+
return A >= OffloadArch::SM_20 && A < OffloadArch::GFX600;
112+
}
113+
114+
static inline bool IsAMDOffloadArch(OffloadArch A) {
115+
// Generic processor model is for testing only.
116+
return A >= OffloadArch::GFX600 && A < OffloadArch::Generic;
117+
}
118+
119+
const char *OffloadArchToString(OffloadArch A);
120+
const char *OffloadArchToVirtualArchString(OffloadArch A);
121+
122+
// Convert a string to an OffloadArch enum value. Returns
123+
// OffloadArch::UNKNOWN if the string is not recognized.
124+
OffloadArch StringToOffloadArch(llvm::StringRef S);
125+
126+
} // namespace clang
127+
128+
#endif // LLVM_CLANG_BASIC_OFFLOADARCH_H

clang/include/clang/CIR/MissingFeatures.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ struct MissingFeatures {
160160
static bool lambdaFieldToName() { return false; }
161161
static bool targetSpecificCXXABI() { return false; }
162162
static bool moduleNameHash() { return false; }
163+
static bool setDSOLocal() { return false; }
163164

164165
// Missing types
165166
static bool dataMemberType() { return false; }

clang/include/clang/Frontend/ASTUnit.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class ASTUnit {
116116
std::shared_ptr<Preprocessor> PP;
117117
IntrusiveRefCntPtr<ASTContext> Ctx;
118118
std::shared_ptr<TargetOptions> TargetOpts;
119-
std::shared_ptr<HeaderSearchOptions> HSOpts;
119+
std::unique_ptr<HeaderSearchOptions> HSOpts;
120120
std::shared_ptr<PreprocessorOptions> PPOpts;
121121
IntrusiveRefCntPtr<ASTReader> Reader;
122122
bool HadModuleLoaderFatalFailure = false;
@@ -699,7 +699,7 @@ class ASTUnit {
699699
WhatToLoad ToLoad,
700700
IntrusiveRefCntPtr<DiagnosticsEngine> Diags,
701701
const FileSystemOptions &FileSystemOpts,
702-
std::shared_ptr<HeaderSearchOptions> HSOpts,
702+
const HeaderSearchOptions &HSOpts,
703703
std::shared_ptr<LangOptions> LangOpts = nullptr,
704704
bool OnlyLocalDecls = false,
705705
CaptureDiagsKind CaptureDiagnostics = CaptureDiagsKind::None,

clang/include/clang/Frontend/CompilerInstance.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,9 +316,6 @@ class CompilerInstance : public ModuleLoader {
316316
const HeaderSearchOptions &getHeaderSearchOpts() const {
317317
return Invocation->getHeaderSearchOpts();
318318
}
319-
std::shared_ptr<HeaderSearchOptions> getHeaderSearchOptsPtr() const {
320-
return Invocation->getHeaderSearchOptsPtr();
321-
}
322319

323320
APINotesOptions &getAPINotesOpts() { return Invocation->getAPINotesOpts(); }
324321
const APINotesOptions &getAPINotesOpts() const {

clang/include/clang/Frontend/CompilerInvocation.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,9 +269,6 @@ class CompilerInvocation : public CompilerInvocationBase {
269269
/// @{
270270
using CompilerInvocationBase::LangOpts;
271271
using CompilerInvocationBase::TargetOpts;
272-
std::shared_ptr<HeaderSearchOptions> getHeaderSearchOptsPtr() {
273-
return HSOpts;
274-
}
275272
std::shared_ptr<LangOptions> getLangOptsPtr() { return LangOpts; }
276273
/// @}
277274

0 commit comments

Comments
 (0)