================
@@ -373,21 +373,42 @@ insertWaveSizeFeature(StringRef GPU, const Triple &T,
const bool IsNullGPU = GPU.empty();
const bool TargetHasWave32 = DefaultFeatures.count("wavefrontsize32");
const bool TargetHasWave64 = DefaultFeatures.count("wavefrontsize64");
- const bool HaveWave32 = Features.count("wavefrontsize32");
- const bool HaveWave64 = Features.count("wavefrontsize64");
- if (HaveWave32 && HaveWave64)
+
+ auto Wave32Itr = Features.find("wavefrontsize32");
+ auto Wave64Itr = Features.find("wavefrontsize64");
+ const bool EnableWave32 =
+ Wave32Itr != Features.end() && Wave32Itr->getValue();
+ const bool EnableWave64 =
+ Wave64Itr != Features.end() && Wave64Itr->getValue();
+ const bool DisableWave32 =
+ Wave32Itr != Features.end() && !Wave32Itr->getValue();
+ const bool DisableWave64 =
+ Wave64Itr != Features.end() && !Wave64Itr->getValue();
+
+ if (EnableWave32 && EnableWave64)
+ return {AMDGPU::INVALID_FEATURE_COMBINATION,
+ "'+wavefrontsize32' and '+wavefrontsize64' are mutually
exclusive"};
+ if (DisableWave32 && DisableWave64)
return {AMDGPU::INVALID_FEATURE_COMBINATION,
- "'wavefrontsize32' and 'wavefrontsize64' are mutually exclusive"};
+ "'-wavefrontsize32' and '-wavefrontsize64' are mutually
exclusive"};
- if (HaveWave32 && !IsNullGPU && TargetHasWave64)
- return {AMDGPU::UNSUPPORTED_TARGET_FEATURE, "wavefrontsize32"};
+ if (!IsNullGPU && TargetHasWave64) {
----------------
rampitec wrote:
nit: maybe wrap all 3 conditions up to line407 into a single `if (!IsNullGPU)`
block?
https://github.com/llvm/llvm-project/pull/176599
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits