[llvm] [AMDGPU][Attributor] Rework update of `AAAMDWavesPerEU` (PR #123995)
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Fri May 16 15:43:26 PDT 2025
================
@@ -1162,24 +1140,21 @@ struct AAAMDWavesPerEU : public AAAMDSizeRangeAttribute {
LLVM_DEBUG(dbgs() << '[' << getName() << "] Call " << Caller->getName()
<< "->" << Func->getName() << '\n');
- const auto *CallerInfo = A.getAAFor<AAAMDWavesPerEU>(
+ const auto *CallerAA = A.getAAFor<AAAMDWavesPerEU>(
*this, IRPosition::function(*Caller), DepClassTy::REQUIRED);
- const auto *AssumedGroupSize = A.getAAFor<AAAMDFlatWorkGroupSize>(
- *this, IRPosition::function(*Func), DepClassTy::REQUIRED);
- if (!CallerInfo || !AssumedGroupSize || !CallerInfo->isValidState() ||
- !AssumedGroupSize->isValidState())
+ if (!CallerAA || !CallerAA->isValidState())
return false;
- unsigned Min, Max;
- std::tie(Min, Max) = InfoCache.getEffectiveWavesPerEU(
- *Caller,
- {CallerInfo->getAssumed().getLower().getZExtValue(),
- CallerInfo->getAssumed().getUpper().getZExtValue() - 1},
- {AssumedGroupSize->getAssumed().getLower().getZExtValue(),
- AssumedGroupSize->getAssumed().getUpper().getZExtValue() - 1});
- ConstantRange CallerRange(APInt(32, Min), APInt(32, Max + 1));
- IntegerRangeState CallerRangeState(CallerRange);
- Change |= clampStateAndIndicateChange(this->getState(), CallerRangeState);
+ ConstantRange Assumed = this->getAssumed();
+ unsigned Min = std::max(Assumed.getLower().getZExtValue(),
+ CallerAA->getAssumed().getLower().getZExtValue());
+ unsigned Max = std::max(Assumed.getUpper().getZExtValue(),
+ CallerAA->getAssumed().getUpper().getZExtValue());
+ ConstantRange Range(APInt(32, Min), APInt(32, Max));
+ IntegerRangeState RangeState(Range);
+ this->getState() = RangeState;
+ Change |= this->getState() == Assumed ? ChangeStatus::UNCHANGED
+ : ChangeStatus::CHANGED;
----------------
jdoerfert wrote:
Nit: Do we really need the `this->` uses above?
https://github.com/llvm/llvm-project/pull/123995
More information about the llvm-commits
mailing list