@@ -419,6 +419,124 @@ class SemaSYCL : public SemaBase {
419419 ParsedType ParsedTy);
420420
421421 void handleKernelAttr (Decl *D, const ParsedAttr &AL);
422+ void handleSYCLTypeAttr (Decl *D, const ParsedAttr &AL);
423+ void handleSYCLDeviceAttr (Decl *D, const ParsedAttr &AL);
424+ void handleSYCLDeviceIndirectlyCallableAttr (Decl *D, const ParsedAttr &AL);
425+ void handleSYCLGlobalVarAttr (Decl *D, const ParsedAttr &AL);
426+ void handleSYCLRegisterNumAttr (Decl *D, const ParsedAttr &AL);
427+ void handleSYCLIntelESimdVectorizeAttr (Decl *D, const ParsedAttr &AL);
428+ void handleSYCLDeviceHasAttr (Decl *D, const ParsedAttr &AL);
429+ void handleSYCLUsesAspectsAttr (Decl *D, const ParsedAttr &AL);
430+ void handleLaunchBoundsAttr (Decl *D, const ParsedAttr &AL);
431+ void handleSYCLWorkGroupSizeHintAttr (Decl *D, const ParsedAttr &AL);
432+ void handleSYCLReqdWorkGroupSizeAttr (Decl *D, const ParsedAttr &AL);
433+ void handleSYCLIntelMaxWorkGroupSizeAttr (Decl *D, const ParsedAttr &AL);
434+ void handleSYCLIntelMinWorkGroupsPerComputeUnitAttr (Decl *D,
435+ const ParsedAttr &AL);
436+ void handleSYCLIntelMaxWorkGroupsPerMultiprocessorAttr (Decl *D,
437+ const ParsedAttr &AL);
438+ void handleIntelReqdSubGroupSizeAttr (Decl *D, const ParsedAttr &AL);
439+ void handleIntelNamedSubGroupSizeAttr (Decl *D, const ParsedAttr &AL);
440+ void handleSYCLIntelNumSimdWorkItemsAttr (Decl *D, const ParsedAttr &AL);
441+ void handleSYCLIntelSchedulerTargetFmaxMhzAttr (Decl *D, const ParsedAttr &AL);
442+ void handleSYCLIntelMaxGlobalWorkDimAttr (Decl *D, const ParsedAttr &AL);
443+ void handleSYCLIntelNoGlobalWorkOffsetAttr (Decl *D, const ParsedAttr &AL);
444+ void handleSYCLIntelUseStallEnableClustersAttr (Decl *D, const ParsedAttr &AL);
445+ void handleSYCLIntelLoopFuseAttr (Decl *D, const ParsedAttr &AL);
446+ void handleSYCLIntelInitiationIntervalAttr (Decl *D, const ParsedAttr &AL);
447+ void handleSYCLIntelDoublePumpAttr (Decl *D, const ParsedAttr &AL);
448+ void handleSYCLIntelSinglePumpAttr (Decl *D, const ParsedAttr &AL);
449+ void handleSYCLIntelMemoryAttr (Decl *D, const ParsedAttr &AL);
450+ void handleSYCLIntelRegisterAttr (Decl *D, const ParsedAttr &AL);
451+ void handleSYCLIntelBankWidthAttr (Decl *D, const ParsedAttr &AL);
452+ void handleSYCLIntelNumBanksAttr (Decl *D, const ParsedAttr &AL);
453+ void handleSYCLIntelPrivateCopiesAttr (Decl *D, const ParsedAttr &AL);
454+ void handleSYCLIntelMaxReplicatesAttr (Decl *D, const ParsedAttr &AL);
455+ void handleIntelSimpleDualPortAttr (Decl *D, const ParsedAttr &AL);
456+ void handleSYCLIntelMergeAttr (Decl *D, const ParsedAttr &AL);
457+ void handleSYCLIntelBankBitsAttr (Decl *D, const ParsedAttr &AL);
458+ void handleSYCLIntelForcePow2DepthAttr (Decl *D, const ParsedAttr &AL);
459+ void handleSYCLIntelPipeIOAttr (Decl *D, const ParsedAttr &AL);
460+ void handleSYCLIntelMaxConcurrencyAttr (Decl *D, const ParsedAttr &AL);
461+ void handleSYCLAddIRAttributesFunctionAttr (Decl *D, const ParsedAttr &AL);
462+ void handleSYCLAddIRAttributesKernelParameterAttr (Decl *D,
463+ const ParsedAttr &AL);
464+ void handleSYCLAddIRAttributesGlobalVariableAttr (Decl *D,
465+ const ParsedAttr &AL);
466+ void handleSYCLAddIRAnnotationsMemberAttr (Decl *D, const ParsedAttr &AL);
467+ void handleSYCLIntelMaxWorkGroupSize (Decl *D, const ParsedAttr &AL);
468+ void handleSYCLIntelMinWorkGroupsPerComputeUnit (Decl *D,
469+ const ParsedAttr &AL);
470+ void handleSYCLIntelMaxWorkGroupsPerMultiprocessor (Decl *D,
471+ const ParsedAttr &AL);
472+
473+ void checkSYCLAddIRAttributesFunctionAttrConflicts (Decl *D);
474+
475+ SYCLReqdWorkGroupSizeAttr *
476+ mergeSYCLReqdWorkGroupSizeAttr (Decl *D, const SYCLReqdWorkGroupSizeAttr &A);
477+ SYCLIntelNumSimdWorkItemsAttr *
478+ mergeSYCLIntelNumSimdWorkItemsAttr (Decl *D,
479+ const SYCLIntelNumSimdWorkItemsAttr &A);
480+ SYCLIntelInitiationIntervalAttr *mergeSYCLIntelInitiationIntervalAttr (
481+ Decl *D, const SYCLIntelInitiationIntervalAttr &A);
482+ SYCLIntelSchedulerTargetFmaxMhzAttr *mergeSYCLIntelSchedulerTargetFmaxMhzAttr (
483+ Decl *D, const SYCLIntelSchedulerTargetFmaxMhzAttr &A);
484+ SYCLIntelMaxGlobalWorkDimAttr *
485+ mergeSYCLIntelMaxGlobalWorkDimAttr (Decl *D,
486+ const SYCLIntelMaxGlobalWorkDimAttr &A);
487+ SYCLIntelMinWorkGroupsPerComputeUnitAttr *
488+ mergeSYCLIntelMinWorkGroupsPerComputeUnitAttr (
489+ Decl *D, const SYCLIntelMinWorkGroupsPerComputeUnitAttr &A);
490+ SYCLIntelMaxWorkGroupsPerMultiprocessorAttr *
491+ mergeSYCLIntelMaxWorkGroupsPerMultiprocessorAttr (
492+ Decl *D, const SYCLIntelMaxWorkGroupsPerMultiprocessorAttr &A);
493+ SYCLIntelLoopFuseAttr *
494+ mergeSYCLIntelLoopFuseAttr (Decl *D, const SYCLIntelLoopFuseAttr &A);
495+ SYCLIntelESimdVectorizeAttr *
496+ mergeSYCLIntelESimdVectorizeAttr (Decl *D,
497+ const SYCLIntelESimdVectorizeAttr &A);
498+ SYCLIntelNoGlobalWorkOffsetAttr *mergeSYCLIntelNoGlobalWorkOffsetAttr (
499+ Decl *D, const SYCLIntelNoGlobalWorkOffsetAttr &A);
500+ SYCLIntelBankWidthAttr *
501+ mergeSYCLIntelBankWidthAttr (Decl *D, const SYCLIntelBankWidthAttr &A);
502+ SYCLIntelNumBanksAttr *
503+ mergeSYCLIntelNumBanksAttr (Decl *D, const SYCLIntelNumBanksAttr &A);
504+ SYCLIntelMaxReplicatesAttr *
505+ mergeSYCLIntelMaxReplicatesAttr (Decl *D, const SYCLIntelMaxReplicatesAttr &A);
506+ SYCLIntelForcePow2DepthAttr *
507+ mergeSYCLIntelForcePow2DepthAttr (Decl *D,
508+ const SYCLIntelForcePow2DepthAttr &A);
509+ SYCLIntelPipeIOAttr *mergeSYCLIntelPipeIOAttr (Decl *D,
510+ const SYCLIntelPipeIOAttr &A);
511+ SYCLIntelMaxConcurrencyAttr *
512+ mergeSYCLIntelMaxConcurrencyAttr (Decl *D,
513+ const SYCLIntelMaxConcurrencyAttr &A);
514+ SYCLAddIRAttributesFunctionAttr *mergeSYCLAddIRAttributesFunctionAttr (
515+ Decl *D, const SYCLAddIRAttributesFunctionAttr &A);
516+ SYCLAddIRAttributesKernelParameterAttr *
517+ mergeSYCLAddIRAttributesKernelParameterAttr (
518+ Decl *D, const SYCLAddIRAttributesKernelParameterAttr &A);
519+ SYCLAddIRAttributesGlobalVariableAttr *
520+ mergeSYCLAddIRAttributesGlobalVariableAttr (
521+ Decl *D, const SYCLAddIRAttributesGlobalVariableAttr &A);
522+ SYCLAddIRAnnotationsMemberAttr *
523+ mergeSYCLAddIRAnnotationsMemberAttr (Decl *D,
524+ const SYCLAddIRAnnotationsMemberAttr &A);
525+ SYCLDeviceHasAttr *mergeSYCLDeviceHasAttr (Decl *D,
526+ const SYCLDeviceHasAttr &A);
527+ SYCLUsesAspectsAttr *mergeSYCLUsesAspectsAttr (Decl *D,
528+ const SYCLUsesAspectsAttr &A);
529+ SYCLTypeAttr *mergeSYCLTypeAttr (Decl *D, const AttributeCommonInfo &CI,
530+ SYCLTypeAttr::SYCLType TypeName);
531+ SYCLWorkGroupSizeHintAttr *
532+ mergeSYCLWorkGroupSizeHintAttr (Decl *D, const SYCLWorkGroupSizeHintAttr &A);
533+ SYCLIntelMaxWorkGroupSizeAttr *
534+ mergeSYCLIntelMaxWorkGroupSizeAttr (Decl *D,
535+ const SYCLIntelMaxWorkGroupSizeAttr &A);
536+ IntelReqdSubGroupSizeAttr *
537+ mergeIntelReqdSubGroupSizeAttr (Decl *D, const IntelReqdSubGroupSizeAttr &A);
538+ IntelNamedSubGroupSizeAttr *
539+ mergeIntelNamedSubGroupSizeAttr (Decl *D, const IntelNamedSubGroupSizeAttr &A);
422540
423541 static OffloadArch getOffloadArch (const TargetInfo &TI);
424542 static bool hasDependentExpr (Expr **Exprs, const size_t ExprsSize);
0 commit comments