@@ -514,51 +514,25 @@ class MarkDeviceFunction : public RecursiveASTVisitor<MarkDeviceFunction> {
514
514
515
515
if (auto *A = FD->getAttr <IntelReqdSubGroupSizeAttr>())
516
516
Attrs.insert (A);
517
+
517
518
if (auto *A = FD->getAttr <ReqdWorkGroupSizeAttr>())
518
519
Attrs.insert (A);
519
- // Allow the following kernel attributes only on lambdas, functions and
520
- // function objects that are called directly from a kernel.
521
- // For all other cases, emit a warning and ignore.
522
- if (auto *A = FD->getAttr <SYCLIntelKernelArgsRestrictAttr>()) {
523
- if (ParentFD == SYCLKernel) {
524
- Attrs.insert (A);
525
- } else {
526
- SemaRef.Diag (A->getLocation (), diag::warn_attribute_ignored) << A;
527
- FD->dropAttr <SYCLIntelKernelArgsRestrictAttr>();
528
- }
529
- }
530
- if (auto *A = FD->getAttr <SYCLIntelNumSimdWorkItemsAttr>()) {
531
- if (ParentFD == SYCLKernel) {
532
- Attrs.insert (A);
533
- } else {
534
- SemaRef.Diag (A->getLocation (), diag::warn_attribute_ignored) << A;
535
- FD->dropAttr <SYCLIntelNumSimdWorkItemsAttr>();
536
- }
537
- }
538
- if (auto *A = FD->getAttr <SYCLIntelMaxWorkGroupSizeAttr>()) {
539
- if (ParentFD == SYCLKernel) {
540
- Attrs.insert (A);
541
- } else {
542
- SemaRef.Diag (A->getLocation (), diag::warn_attribute_ignored) << A;
543
- FD->dropAttr <SYCLIntelMaxWorkGroupSizeAttr>();
544
- }
545
- }
546
- if (auto *A = FD->getAttr <SYCLIntelMaxGlobalWorkDimAttr>()) {
547
- if (ParentFD == SYCLKernel) {
548
- Attrs.insert (A);
549
- } else {
550
- SemaRef.Diag (A->getLocation (), diag::warn_attribute_ignored) << A;
551
- FD->dropAttr <SYCLIntelMaxGlobalWorkDimAttr>();
552
- }
553
- }
554
- if (auto *A = FD->getAttr <SYCLIntelNoGlobalWorkOffsetAttr>()) {
555
- if (ParentFD == SYCLKernel) {
556
- Attrs.insert (A);
557
- } else {
558
- SemaRef.Diag (A->getLocation (), diag::warn_attribute_ignored) << A;
559
- FD->dropAttr <SYCLIntelNoGlobalWorkOffsetAttr>();
560
- }
561
- }
520
+
521
+ if (auto *A = FD->getAttr <SYCLIntelKernelArgsRestrictAttr>())
522
+ Attrs.insert (A);
523
+
524
+ if (auto *A = FD->getAttr <SYCLIntelNumSimdWorkItemsAttr>())
525
+ Attrs.insert (A);
526
+
527
+ if (auto *A = FD->getAttr <SYCLIntelMaxWorkGroupSizeAttr>())
528
+ Attrs.insert (A);
529
+
530
+ if (auto *A = FD->getAttr <SYCLIntelMaxGlobalWorkDimAttr>())
531
+ Attrs.insert (A);
532
+
533
+ if (auto *A = FD->getAttr <SYCLIntelNoGlobalWorkOffsetAttr>())
534
+ Attrs.insert (A);
535
+
562
536
if (auto *A = FD->getAttr <SYCLSimdAttr>())
563
537
Attrs.insert (A);
564
538
// Propagate the explicit SIMD attribute through call graph - it is used
0 commit comments