Skip to content

Commit e9e31ee

Browse files
committed
Early return and merge warning
1 parent 23892e1 commit e9e31ee

File tree

5 files changed

+15
-16
lines changed

5 files changed

+15
-16
lines changed

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3439,10 +3439,6 @@ def err_attribute_argument_is_zero : Error<
34393439
def warn_attribute_argument_n_negative : Warning<
34403440
"%0 attribute parameter %1 is negative and will be ignored">,
34413441
InGroup<CudaCompat>;
3442-
def warn_reqd_sub_group_attribute_cuda_n_32
3443-
: Warning<"attribute argument %0 is invalid and will be ignored; CUDA "
3444-
"requires sub_group size 32">,
3445-
InGroup<CudaCompat>;
34463442
def err_property_function_in_objc_container : Error<
34473443
"use of Objective-C property in function nested in Objective-C "
34483444
"container not supported, move function outside its container">;
@@ -3541,9 +3537,9 @@ def warn_dllimport_dropped_from_inline_function : Warning<
35413537
def warn_attribute_on_direct_kernel_callee_only : Warning<"%0 attribute allowed"
35423538
" only on a function directly called from a SYCL kernel function; attribute ignored">,
35433539
InGroup<IgnoredAttributes>;
3544-
def warn_amd_reqd_sub_group_attribute_n
3545-
: Warning<"attribute argument %0 is invalid and will be ignored; AMD "
3546-
"requires sub_group size %1">,
3540+
def warn_reqd_sub_group_attribute_n
3541+
: Warning<"attribute argument %0 is invalid and will be ignored; %1 "
3542+
"requires sub_group size %2">,
35473543
InGroup<IgnoredAttributes>;
35483544
def warn_nothrow_attribute_ignored : Warning<"'nothrow' attribute conflicts with"
35493545
" exception specification; attribute ignored">,

clang/lib/Sema/SemaDeclAttr.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4009,8 +4009,9 @@ void Sema::AddIntelReqdSubGroupSize(Decl *D, const AttributeCommonInfo &CI,
40094009
}
40104010
auto &TI = Context.getTargetInfo();
40114011
if (TI.getTriple().isNVPTX() && ArgVal != 32) {
4012-
Diag(E->getExprLoc(), diag::warn_reqd_sub_group_attribute_cuda_n_32)
4013-
<< ArgVal.getSExtValue();
4012+
Diag(E->getExprLoc(), diag::warn_reqd_sub_group_attribute_n)
4013+
<< ArgVal.getSExtValue() << TI.getTriple().getArchName() << 32;
4014+
return;
40144015
}
40154016
if (TI.getTriple().isAMDGPU()) {
40164017
const auto HasWaveFrontSize64 =
@@ -4024,8 +4025,10 @@ void Sema::AddIntelReqdSubGroupSize(Decl *D, const AttributeCommonInfo &CI,
40244025
const auto SupportedWaveFrontSize =
40254026
HasWaveFrontSize64 && !HasWaveFrontSize32 ? 64 : 32;
40264027
if (ArgVal != SupportedWaveFrontSize) {
4027-
Diag(E->getExprLoc(), diag::warn_amd_reqd_sub_group_attribute_n)
4028-
<< ArgVal.getSExtValue() << SupportedWaveFrontSize;
4028+
Diag(E->getExprLoc(), diag::warn_reqd_sub_group_attribute_n)
4029+
<< ArgVal.getSExtValue() << TI.getTriple().getArchName()
4030+
<< SupportedWaveFrontSize;
4031+
return;
40294032
}
40304033
}
40314034

clang/test/SemaSYCL/reqd-sub-group-size-amd_32.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ int main() {
99
sycl::queue Q;
1010

1111
Q.submit([&](sycl::handler &h) {
12-
h.single_task<class invalid_kernel>([=] [[sycl::reqd_sub_group_size(64)]] {}); // expected-warning {{attribute argument 64 is invalid and will be ignored; AMD requires sub_group size 32}}
12+
h.single_task<class invalid_kernel>([=] [[sycl::reqd_sub_group_size(64)]] {}); // expected-warning {{attribute argument 64 is invalid and will be ignored; amdgcn requires sub_group size 32}}
1313
});
1414

1515
Q.submit([&](sycl::handler &h) {
1616
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(32)]] {});
1717
});
1818

1919
Q.submit([&](sycl::handler &h) {
20-
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(8)]] {}); // expected-warning {{attribute argument 8 is invalid and will be ignored; AMD requires sub_group size 32}}
20+
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(8)]] {}); // expected-warning {{attribute argument 8 is invalid and will be ignored; amdgcn requires sub_group size 32}}
2121
});
2222

2323
return 0;

clang/test/SemaSYCL/reqd-sub-group-size-amd_64.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ int main() {
1313
});
1414

1515
Q.submit([&](sycl::handler &h) {
16-
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(32)]] {}); // expected-warning {{attribute argument 32 is invalid and will be ignored; AMD requires sub_group size 64}}
16+
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(32)]] {}); // expected-warning {{attribute argument 32 is invalid and will be ignored; amdgcn requires sub_group size 64}}
1717
});
1818

1919
Q.submit([&](sycl::handler &h) {
20-
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(8)]] {}); // expected-warning {{attribute argument 8 is invalid and will be ignored; AMD requires sub_group size 64}}
20+
h.single_task<class valid_kernel>([=] [[sycl::reqd_sub_group_size(8)]] {}); // expected-warning {{attribute argument 8 is invalid and will be ignored; amdgcn requires sub_group size 64}}
2121
});
2222

2323
return 0;

clang/test/SemaSYCL/reqd-sub-group-size-cuda.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ int main() {
99
sycl::queue Q;
1010

1111
Q.submit([&](sycl::handler &h) {
12-
h.single_task<class invalid_kernel>([=] [[sycl::reqd_sub_group_size(8)]] {}); // expected-warning {{attribute argument 8 is invalid and will be ignored; CUDA requires sub_group size 32}}
12+
h.single_task<class invalid_kernel>([=] [[sycl::reqd_sub_group_size(8)]] {}); // expected-warning {{attribute argument 8 is invalid and will be ignored; nvptx requires sub_group size 32}}
1313
});
1414

1515
Q.submit([&](sycl::handler &h) {

0 commit comments

Comments
 (0)