[llvm] [AMDGPU][Attributor] Make `AAAMDFlatWorkGroupSize` honor existing attribute (PR #114357)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 1 22:03:27 PDT 2024
================
@@ -767,13 +802,33 @@ struct AAAMDFlatWorkGroupSize : public AAAMDSizeRangeAttribute {
void initialize(Attributor &A) override {
Function *F = getAssociatedFunction();
auto &InfoCache = static_cast<AMDGPUInformationCache &>(A.getInfoCache());
- unsigned MinGroupSize, MaxGroupSize;
- std::tie(MinGroupSize, MaxGroupSize) = InfoCache.getFlatWorkGroupSizes(*F);
- intersectKnown(
- ConstantRange(APInt(32, MinGroupSize), APInt(32, MaxGroupSize + 1)));
- if (AMDGPU::isEntryFunctionCC(F->getCallingConv()))
- indicatePessimisticFixpoint();
+ bool HasAttr = false;
+ auto Range = InfoCache.getDefaultFlatWorkGroupSize(*F);
+ auto MaxRange = InfoCache.getMaximumFlatWorkGroupRange(*F);
+
+ if (auto Attr = InfoCache.getFlatWorkGroupSizeAttr(*F)) {
+ // We will only consider an attribute different from max because the front
+ // end always emits the attribure, unfortunately, and sometimes it emits
----------------
choikwa wrote:
typo
https://github.com/llvm/llvm-project/pull/114357
More information about the llvm-commits
mailing list