Skip to content

Commit 62718ba

Browse files
committed
Merge branch 'sycl' into aaron/updatePIDocs
2 parents 7b7437b + 36347a3 commit 62718ba

File tree

221 files changed

+5829
-3000
lines changed

Some content is hidden

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

221 files changed

+5829
-3000
lines changed

.github/workflows/sycl-nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ jobs:
120120
if: |
121121
always()
122122
&& !cancelled()
123-
&& needs.build.outputs.build_conclusion == 'success'
123+
&& needs.build-win.outputs.build_conclusion == 'success'
124124
uses: ./.github/workflows/sycl-windows-run-tests.yml
125125
with:
126126
name: Intel GEN12 Graphics with Level Zero

clang/include/clang/Basic/DiagnosticGroups.td

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,9 +1375,8 @@ def OpenMP : DiagGroup<"openmp", [
13751375
]>;
13761376

13771377
// SYCL warnings
1378-
def Sycl2017Compat : DiagGroup<"sycl-2017-compat">;
13791378
def Sycl2020Compat : DiagGroup<"sycl-2020-compat">;
1380-
def SyclStrict : DiagGroup<"sycl-strict", [ Sycl2017Compat, Sycl2020Compat]>;
1379+
def SyclStrict : DiagGroup<"sycl-strict", [ Sycl2020Compat]>;
13811380
def SyclTarget : DiagGroup<"sycl-target">;
13821381
def SyclFPGAMismatch : DiagGroup<"sycl-fpga-mismatch">;
13831382
def SyclAspectMismatch : DiagGroup<"sycl-aspect-mismatch">;

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12485,14 +12485,6 @@ def err_sycl_invalid_aspect_argument : Error<
1248512485
def warn_sycl_pass_by_value_deprecated
1248612486
: Warning<"passing kernel functions by value is deprecated in SYCL 2020">,
1248712487
InGroup<Sycl2020Compat>, ShowInSystemHeader;
12488-
def warn_sycl_pass_by_reference_future
12489-
: Warning<"passing of kernel functions by reference is a SYCL 2020 extension">,
12490-
InGroup<Sycl2017Compat>, ShowInSystemHeader;
12491-
def warn_sycl_implicit_decl
12492-
: Warning<"SYCL 1.2.1 specification requires an explicit forward "
12493-
"declaration for a kernel type name; your program may not "
12494-
"be portable">,
12495-
InGroup<SyclStrict>, ShowInSystemHeader, DefaultIgnore;
1249612488
def warn_sycl_potentially_invalid_as_cast : Warning<
1249712489
"explicit cast from %0 to %1 potentially leads to an invalid address space"
1249812490
" cast in the resulting code">, InGroup<SyclStrict>,
@@ -12528,9 +12520,6 @@ def err_sycl_mismatch_group_size
1252812520
def note_sycl_kernel_declared_here : Note<"kernel declared here">;
1252912521
def err_sycl_expected_finalize_method : Error<
1253012522
"expected a 'finalize' method for the 'stream' class">;
12531-
def ext_sycl_2020_attr_spelling : ExtWarn<
12532-
"use of attribute %0 is a SYCL 2020 extension">,
12533-
InGroup<Sycl2017Compat>;
1253412523
def err_sycl_esimd_not_supported_for_type : Error<
1253512524
"type %0 is not supported in ESIMD context">;
1253612525
def err_sycl_taking_address_of_wrong_function : Error<

clang/include/clang/Basic/LangOptions.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,13 @@ class LangOptionsBase {
146146

147147
enum SYCLMajorVersion {
148148
SYCL_None,
149-
SYCL_2017,
150149
SYCL_2020,
151150
// The "default" SYCL version to be used when none is specified on the
152151
// frontend command line.
153152
SYCL_Default = SYCL_2020
154153
};
155154

156155
enum class SYCLVersionList {
157-
sycl_1_2_1,
158156
undefined
159157
};
160158

clang/include/clang/Sema/Sema.h

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -4702,159 +4702,79 @@ class Sema final : public SemaBase {
47024702
/// Essentially, this just moves them to the current pool.
47034703
void redelayDiagnostics(sema::DelayedDiagnosticPool &pool);
47044704

4705-
void AddSYCLIntelBankBitsAttr(Decl *D, const AttributeCommonInfo &CI,
4706-
Expr **Exprs, unsigned Size);
4707-
bool AnyWorkGroupSizesDiffer(const Expr *LHSXDim, const Expr *LHSYDim,
4708-
const Expr *LHSZDim, const Expr *RHSXDim,
4709-
const Expr *RHSYDim, const Expr *RHSZDim);
4710-
bool AllWorkGroupSizesSame(const Expr *LHSXDim, const Expr *LHSYDim,
4711-
const Expr *LHSZDim, const Expr *RHSXDim,
4712-
const Expr *RHSYDim, const Expr *RHSZDim);
4713-
void AddSYCLWorkGroupSizeHintAttr(Decl *D, const AttributeCommonInfo &CI,
4714-
Expr *XDim, Expr *YDim, Expr *ZDim);
47154705
SYCLWorkGroupSizeHintAttr *
47164706
MergeSYCLWorkGroupSizeHintAttr(Decl *D, const SYCLWorkGroupSizeHintAttr &A);
4717-
void AddIntelReqdSubGroupSize(Decl *D, const AttributeCommonInfo &CI,
4718-
Expr *E);
47194707
IntelReqdSubGroupSizeAttr *
47204708
MergeIntelReqdSubGroupSizeAttr(Decl *D, const IntelReqdSubGroupSizeAttr &A);
47214709
IntelNamedSubGroupSizeAttr *
47224710
MergeIntelNamedSubGroupSizeAttr(Decl *D, const IntelNamedSubGroupSizeAttr &A);
4723-
void AddSYCLIntelNumSimdWorkItemsAttr(Decl *D, const AttributeCommonInfo &CI,
4724-
Expr *E);
47254711
SYCLIntelNumSimdWorkItemsAttr *
47264712
MergeSYCLIntelNumSimdWorkItemsAttr(Decl *D,
47274713
const SYCLIntelNumSimdWorkItemsAttr &A);
4728-
void AddSYCLIntelESimdVectorizeAttr(Decl *D, const AttributeCommonInfo &CI,
4729-
Expr *E);
47304714
SYCLIntelESimdVectorizeAttr *
47314715
MergeSYCLIntelESimdVectorizeAttr(Decl *D,
47324716
const SYCLIntelESimdVectorizeAttr &A);
4733-
void AddSYCLIntelSchedulerTargetFmaxMhzAttr(Decl *D,
4734-
const AttributeCommonInfo &CI,
4735-
Expr *E);
47364717
SYCLIntelSchedulerTargetFmaxMhzAttr *MergeSYCLIntelSchedulerTargetFmaxMhzAttr(
47374718
Decl *D, const SYCLIntelSchedulerTargetFmaxMhzAttr &A);
4738-
void AddSYCLIntelNoGlobalWorkOffsetAttr(Decl *D,
4739-
const AttributeCommonInfo &CI,
4740-
Expr *E);
47414719
SYCLIntelNoGlobalWorkOffsetAttr *MergeSYCLIntelNoGlobalWorkOffsetAttr(
47424720
Decl *D, const SYCLIntelNoGlobalWorkOffsetAttr &A);
4743-
void AddSYCLIntelLoopFuseAttr(Decl *D, const AttributeCommonInfo &CI,
4744-
Expr *E);
47454721
SYCLIntelLoopFuseAttr *
47464722
MergeSYCLIntelLoopFuseAttr(Decl *D, const SYCLIntelLoopFuseAttr &A);
4747-
void AddSYCLIntelPrivateCopiesAttr(Decl *D, const AttributeCommonInfo &CI,
4748-
Expr *E);
4749-
void AddSYCLIntelMaxReplicatesAttr(Decl *D, const AttributeCommonInfo &CI,
4750-
Expr *E);
47514723
SYCLIntelMaxReplicatesAttr *
47524724
MergeSYCLIntelMaxReplicatesAttr(Decl *D, const SYCLIntelMaxReplicatesAttr &A);
4753-
void AddSYCLIntelForcePow2DepthAttr(Decl *D, const AttributeCommonInfo &CI,
4754-
Expr *E);
47554725
SYCLIntelForcePow2DepthAttr *
47564726
MergeSYCLIntelForcePow2DepthAttr(Decl *D,
47574727
const SYCLIntelForcePow2DepthAttr &A);
4758-
void AddSYCLIntelInitiationIntervalAttr(Decl *D,
4759-
const AttributeCommonInfo &CI,
4760-
Expr *E);
47614728
SYCLIntelInitiationIntervalAttr *MergeSYCLIntelInitiationIntervalAttr(
47624729
Decl *D, const SYCLIntelInitiationIntervalAttr &A);
47634730

47644731
SYCLIntelMaxConcurrencyAttr *
47654732
MergeSYCLIntelMaxConcurrencyAttr(Decl *D,
47664733
const SYCLIntelMaxConcurrencyAttr &A);
4767-
void AddSYCLIntelMaxGlobalWorkDimAttr(Decl *D, const AttributeCommonInfo &CI,
4768-
Expr *E);
47694734
SYCLIntelMaxGlobalWorkDimAttr *
47704735
MergeSYCLIntelMaxGlobalWorkDimAttr(Decl *D,
47714736
const SYCLIntelMaxGlobalWorkDimAttr &A);
4772-
void AddSYCLIntelMinWorkGroupsPerComputeUnitAttr(
4773-
Decl *D, const AttributeCommonInfo &CI, Expr *E);
47744737
SYCLIntelMinWorkGroupsPerComputeUnitAttr *
47754738
MergeSYCLIntelMinWorkGroupsPerComputeUnitAttr(
47764739
Decl *D, const SYCLIntelMinWorkGroupsPerComputeUnitAttr &A);
4777-
void AddSYCLIntelMaxWorkGroupsPerMultiprocessorAttr(
4778-
Decl *D, const AttributeCommonInfo &CI, Expr *E);
47794740
SYCLIntelMaxWorkGroupsPerMultiprocessorAttr *
47804741
MergeSYCLIntelMaxWorkGroupsPerMultiprocessorAttr(
47814742
Decl *D, const SYCLIntelMaxWorkGroupsPerMultiprocessorAttr &A);
4782-
void AddSYCLIntelBankWidthAttr(Decl *D, const AttributeCommonInfo &CI,
4783-
Expr *E);
47844743
SYCLIntelBankWidthAttr *
47854744
MergeSYCLIntelBankWidthAttr(Decl *D, const SYCLIntelBankWidthAttr &A);
4786-
void AddSYCLIntelNumBanksAttr(Decl *D, const AttributeCommonInfo &CI,
4787-
Expr *E);
47884745
SYCLIntelNumBanksAttr *
47894746
MergeSYCLIntelNumBanksAttr(Decl *D, const SYCLIntelNumBanksAttr &A);
47904747
SYCLDeviceHasAttr *MergeSYCLDeviceHasAttr(Decl *D,
47914748
const SYCLDeviceHasAttr &A);
4792-
void AddSYCLDeviceHasAttr(Decl *D, const AttributeCommonInfo &CI,
4793-
Expr **Exprs, unsigned Size);
47944749
SYCLUsesAspectsAttr *MergeSYCLUsesAspectsAttr(Decl *D,
47954750
const SYCLUsesAspectsAttr &A);
4796-
void AddSYCLUsesAspectsAttr(Decl *D, const AttributeCommonInfo &CI,
4797-
Expr **Exprs, unsigned Size);
47984751
bool CheckMaxAllowedWorkGroupSize(const Expr *RWGSXDim, const Expr *RWGSYDim,
47994752
const Expr *RWGSZDim, const Expr *MWGSXDim,
48004753
const Expr *MWGSYDim, const Expr *MWGSZDim);
4801-
void AddSYCLIntelMaxWorkGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
4802-
Expr *XDim, Expr *YDim, Expr *ZDim);
48034754
SYCLIntelMaxWorkGroupSizeAttr *
48044755
MergeSYCLIntelMaxWorkGroupSizeAttr(Decl *D,
48054756
const SYCLIntelMaxWorkGroupSizeAttr &A);
48064757
void CheckSYCLAddIRAttributesFunctionAttrConflicts(Decl *D);
48074758
SYCLAddIRAttributesFunctionAttr *MergeSYCLAddIRAttributesFunctionAttr(
48084759
Decl *D, const SYCLAddIRAttributesFunctionAttr &A);
4809-
void AddSYCLAddIRAttributesFunctionAttr(Decl *D,
4810-
const AttributeCommonInfo &CI,
4811-
MutableArrayRef<Expr *> Args);
48124760
SYCLAddIRAttributesKernelParameterAttr *
48134761
MergeSYCLAddIRAttributesKernelParameterAttr(
48144762
Decl *D, const SYCLAddIRAttributesKernelParameterAttr &A);
4815-
void AddSYCLAddIRAttributesKernelParameterAttr(Decl *D,
4816-
const AttributeCommonInfo &CI,
4817-
MutableArrayRef<Expr *> Args);
48184763
SYCLAddIRAttributesGlobalVariableAttr *
48194764
MergeSYCLAddIRAttributesGlobalVariableAttr(
48204765
Decl *D, const SYCLAddIRAttributesGlobalVariableAttr &A);
4821-
void AddSYCLAddIRAttributesGlobalVariableAttr(Decl *D,
4822-
const AttributeCommonInfo &CI,
4823-
MutableArrayRef<Expr *> Args);
48244766
SYCLAddIRAnnotationsMemberAttr *
48254767
MergeSYCLAddIRAnnotationsMemberAttr(Decl *D,
48264768
const SYCLAddIRAnnotationsMemberAttr &A);
4827-
void AddSYCLAddIRAnnotationsMemberAttr(Decl *D, const AttributeCommonInfo &CI,
4828-
MutableArrayRef<Expr *> Args);
4829-
void AddSYCLReqdWorkGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
4830-
Expr *XDim, Expr *YDim, Expr *ZDim);
48314769
SYCLReqdWorkGroupSizeAttr *
48324770
MergeSYCLReqdWorkGroupSizeAttr(Decl *D, const SYCLReqdWorkGroupSizeAttr &A);
48334771

48344772
SYCLTypeAttr *MergeSYCLTypeAttr(Decl *D, const AttributeCommonInfo &CI,
48354773
SYCLTypeAttr::SYCLType TypeName);
48364774

4837-
/// Emit a diagnostic about the given attribute having a deprecated name, and
4838-
/// also emit a fixit hint to generate the new attribute name.
4839-
void DiagnoseDeprecatedAttribute(const ParsedAttr &A, StringRef NewScope,
4840-
StringRef NewName);
4841-
4842-
/// Diagnoses an attribute in the 'intelfpga' namespace and suggests using
4843-
/// the attribute in the 'intel' namespace instead.
4844-
void CheckDeprecatedSYCLAttributeSpelling(const ParsedAttr &A,
4845-
StringRef NewName = "");
4846-
4847-
/// addSYCLIntelPipeIOAttr - Adds a pipe I/O attribute to a particular
4848-
/// declaration.
4849-
void addSYCLIntelPipeIOAttr(Decl *D, const AttributeCommonInfo &CI, Expr *ID);
48504775
SYCLIntelPipeIOAttr *MergeSYCLIntelPipeIOAttr(Decl *D,
48514776
const SYCLIntelPipeIOAttr &A);
48524777

4853-
/// AddSYCLIntelMaxConcurrencyAttr - Adds a max_concurrency attribute to a
4854-
/// particular declaration.
4855-
void AddSYCLIntelMaxConcurrencyAttr(Decl *D, const AttributeCommonInfo &CI,
4856-
Expr *E);
4857-
48584778
bool CheckCountedByAttr(Scope *Scope, const FieldDecl *FD);
48594779
/// Check if IdxExpr is a valid parameter index for a function or
48604780
/// instance method D. May output an error.

clang/include/clang/Sema/SemaSYCL.h

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
#include "clang/AST/Attr.h"
1717
#include "clang/AST/Decl.h"
1818
#include "clang/AST/Type.h"
19+
#include "clang/Basic/Cuda.h"
1920
#include "clang/Basic/SourceLocation.h"
2021
#include "clang/Sema/Ownership.h"
2122
#include "clang/Sema/SemaBase.h"
23+
#include "clang/Sema/SemaDiagnostic.h"
2224
#include "llvm/ADT/DenseSet.h"
2325
#include "llvm/ADT/SetVector.h"
2426

@@ -215,6 +217,27 @@ class SYCLIntegrationFooter {
215217
void emitSpecIDName(raw_ostream &O, const VarDecl *VD);
216218
};
217219

220+
// Handles max_global_work_dim.
221+
// Returns a OneArgResult value; EqualToOne means all argument values are
222+
// equal to one, NotEqualToOne means at least one argument value is not
223+
// equal to one, and Unknown means that at least one of the argument values
224+
// could not be determined.
225+
enum class OneArgResult { Unknown, EqualToOne, NotEqualToOne };
226+
static inline OneArgResult areAllArgsOne(const Expr *Args[], size_t Count) {
227+
for (size_t Idx = 0; Idx < Count; ++Idx) {
228+
const Expr *Arg = Args[Idx];
229+
// Optional arguments are considered trivially one.
230+
if (!Arg)
231+
return OneArgResult::EqualToOne;
232+
const auto *CE = dyn_cast<ConstantExpr>(Args[Idx]);
233+
if (!CE)
234+
return OneArgResult::Unknown;
235+
if (CE->getResultAsAPSInt() != 1)
236+
return OneArgResult::NotEqualToOne;
237+
}
238+
return OneArgResult::EqualToOne;
239+
}
240+
218241
class SemaSYCL : public SemaBase {
219242
private:
220243
// We store SYCL Kernels here and handle separately -- which is a hack.
@@ -396,6 +419,112 @@ class SemaSYCL : public SemaBase {
396419
ParsedType ParsedTy);
397420

398421
void handleKernelAttr(Decl *D, const ParsedAttr &AL);
422+
423+
static OffloadArch getOffloadArch(const TargetInfo &TI);
424+
static bool hasDependentExpr(Expr **Exprs, const size_t ExprsSize);
425+
426+
/// Emit a diagnostic about the given attribute having a deprecated name, and
427+
/// also emit a fixit hint to generate the new attribute name.
428+
void diagnoseDeprecatedAttribute(const ParsedAttr &A, StringRef NewScope,
429+
StringRef NewName);
430+
431+
/// Diagnoses an attribute in the 'intelfpga' namespace and suggests using
432+
/// the attribute in the 'intel' namespace instead.
433+
void checkDeprecatedSYCLAttributeSpelling(const ParsedAttr &A,
434+
StringRef NewName = "");
435+
436+
bool checkValidFPGAMemoryAttributesVar(Decl *D);
437+
438+
bool checkWorkGroupSize(const Expr *NSWIValue, const Expr *RWGSXDim,
439+
const Expr *RWGSYDim, const Expr *RWGSZDim);
440+
bool checkMaxAllowedWorkGroupSize(const Expr *RWGSXDim, const Expr *RWGSYDim,
441+
const Expr *RWGSZDim, const Expr *MWGSXDim,
442+
const Expr *MWGSYDim, const Expr *MWGSZDim);
443+
bool areInvalidWorkGroupSizeAttrs(const Expr *MGValue, const Expr *XDim,
444+
const Expr *YDim, const Expr *ZDim);
445+
446+
// If the declaration has a SYCLIntelMaxWorkGroupSizeAttr or
447+
// ReqdWorkGroupSizeAttr, check to see if they hold equal values
448+
// (1, 1, 1). Returns true if diagnosed.
449+
template <typename AttrTy>
450+
bool checkWorkGroupSizeAttrExpr(Decl *D, const AttributeCommonInfo &AL) {
451+
if (const auto *A = D->getAttr<AttrTy>()) {
452+
const Expr *Args[3] = {A->getXDim(), A->getYDim(), A->getZDim()};
453+
if (OneArgResult::NotEqualToOne == areAllArgsOne(Args, 3)) {
454+
Diag(A->getLocation(), diag::err_sycl_x_y_z_arguments_must_be_one)
455+
<< A << AL;
456+
return true;
457+
}
458+
}
459+
return false;
460+
}
461+
462+
bool anyWorkGroupSizesDiffer(const Expr *LHSXDim, const Expr *LHSYDim,
463+
const Expr *LHSZDim, const Expr *RHSXDim,
464+
const Expr *RHSYDim, const Expr *RHSZDim);
465+
bool allWorkGroupSizesSame(const Expr *LHSXDim, const Expr *LHSYDim,
466+
const Expr *LHSZDim, const Expr *RHSXDim,
467+
const Expr *RHSYDim, const Expr *RHSZDim);
468+
469+
void addSYCLIntelPipeIOAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E);
470+
void addSYCLDeviceHasAttr(Decl *D, const AttributeCommonInfo &CI,
471+
Expr **Exprs, unsigned Size);
472+
void addSYCLUsesAspectsAttr(Decl *D, const AttributeCommonInfo &CI,
473+
Expr **Exprs, unsigned Size);
474+
void addSYCLIntelLoopFuseAttr(Decl *D, const AttributeCommonInfo &CI,
475+
Expr *E);
476+
void addSYCLIntelNumSimdWorkItemsAttr(Decl *D, const AttributeCommonInfo &CI,
477+
Expr *E);
478+
void addSYCLIntelSchedulerTargetFmaxMhzAttr(Decl *D,
479+
const AttributeCommonInfo &CI,
480+
Expr *E);
481+
void addSYCLIntelNoGlobalWorkOffsetAttr(Decl *D,
482+
const AttributeCommonInfo &CI,
483+
Expr *E);
484+
void addSYCLIntelMaxGlobalWorkDimAttr(Decl *D, const AttributeCommonInfo &CI,
485+
Expr *E);
486+
void addSYCLIntelMinWorkGroupsPerComputeUnitAttr(
487+
Decl *D, const AttributeCommonInfo &CI, Expr *E);
488+
void addSYCLIntelMaxWorkGroupsPerMultiprocessorAttr(
489+
Decl *D, const AttributeCommonInfo &CI, Expr *E);
490+
void addSYCLIntelMaxConcurrencyAttr(Decl *D, const AttributeCommonInfo &CI,
491+
Expr *E);
492+
void addSYCLIntelPrivateCopiesAttr(Decl *D, const AttributeCommonInfo &CI,
493+
Expr *E);
494+
void addSYCLIntelMaxReplicatesAttr(Decl *D, const AttributeCommonInfo &CI,
495+
Expr *E);
496+
void addSYCLIntelInitiationIntervalAttr(Decl *D,
497+
const AttributeCommonInfo &CI,
498+
Expr *E);
499+
void addSYCLIntelESimdVectorizeAttr(Decl *D, const AttributeCommonInfo &CI,
500+
Expr *E);
501+
void addSYCLAddIRAttributesFunctionAttr(Decl *D,
502+
const AttributeCommonInfo &CI,
503+
MutableArrayRef<Expr *> Args);
504+
void addSYCLAddIRAttributesKernelParameterAttr(Decl *D,
505+
const AttributeCommonInfo &CI,
506+
MutableArrayRef<Expr *> Args);
507+
void addSYCLAddIRAttributesGlobalVariableAttr(Decl *D,
508+
const AttributeCommonInfo &CI,
509+
MutableArrayRef<Expr *> Args);
510+
void addSYCLAddIRAnnotationsMemberAttr(Decl *D, const AttributeCommonInfo &CI,
511+
MutableArrayRef<Expr *> Args);
512+
void addSYCLWorkGroupSizeHintAttr(Decl *D, const AttributeCommonInfo &CI,
513+
Expr *XDim, Expr *YDim, Expr *ZDim);
514+
void addSYCLReqdWorkGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
515+
Expr *XDim, Expr *YDim, Expr *ZDim);
516+
void addSYCLIntelMaxWorkGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
517+
Expr *XDim, Expr *YDim, Expr *ZDim);
518+
void addSYCLIntelForcePow2DepthAttr(Decl *D, const AttributeCommonInfo &CI,
519+
Expr *E);
520+
void addSYCLIntelBankWidthAttr(Decl *D, const AttributeCommonInfo &CI,
521+
Expr *E);
522+
void addSYCLIntelNumBanksAttr(Decl *D, const AttributeCommonInfo &CI,
523+
Expr *E);
524+
void addSYCLIntelBankBitsAttr(Decl *D, const AttributeCommonInfo &CI,
525+
Expr **Exprs, unsigned Size);
526+
void addIntelReqdSubGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
527+
Expr *E);
399528
};
400529

401530
} // namespace clang

clang/lib/Sema/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ add_clang_library(clangSema
8787
SemaStmtAsm.cpp
8888
SemaStmtAttr.cpp
8989
SemaSYCL.cpp
90+
SemaSYCLDeclAttr.cpp
9091
SemaSwift.cpp
9192
SemaSystemZ.cpp
9293
SemaTemplate.cpp

0 commit comments

Comments
 (0)