[llvm] [WIP][AMDGPU][Attributor] Make `AAAMDFlatWorkGroupSize` honor existing attribute (PR #114357)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 30 22:08:58 PDT 2024
================
@@ -767,11 +805,17 @@ 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)));
+ std::optional<std::pair<unsigned, unsigned>> Attr =
+ InfoCache.getFlatWorkGroupSizeAttr(*F);
+
+ if (Attr.has_value()) {
+ auto [Min, Max] = *Attr;
+ intersectKnown(ConstantRange(APInt(32, Min), APInt(32, Max + 1)));
+ indicatePessimisticFixpoint();
----------------
shiltian wrote:
This pessimistic fixed point will not make the AA invalid because the `known -> assumed` range is no longer a full set.
https://github.com/llvm/llvm-project/pull/114357
More information about the llvm-commits
mailing list