Lines Matching refs:AA
159 raw_ostream &operator<<(raw_ostream &OS, const CLASS &AA) { \
160 return OS << static_cast<const AbstractAttribute &>(AA); \
381 return AA::hasAssumedIRAttr<IRAttributeKind>( in clampReturnedValueStates()
385 const AAType *AA = in clampReturnedValueStates() local
387 if (!AA) in clampReturnedValueStates()
390 << " AA: " << AA->getAsStr(&A) << " @ " << RVPos << "\n"); in clampReturnedValueStates()
391 const StateType &AAS = AA->getState(); in clampReturnedValueStates()
401 AA::ValueScope::Intraprocedural, in clampReturnedValueStates()
461 return AA::hasAssumedIRAttr<IRAttributeKind>( in clampCallSiteArgumentStates()
465 const AAType *AA = in clampCallSiteArgumentStates() local
467 if (!AA) in clampCallSiteArgumentStates()
470 << " AA: " << AA->getAsStr(&A) << " @" << ACSArgPos in clampCallSiteArgumentStates()
472 const StateType &AAS = AA->getState(); in clampCallSiteArgumentStates()
510 return AA::hasAssumedIRAttr<IRAttributeKind>( in getArgumentStateFromCallBaseContext()
514 const auto *AA = in getArgumentStateFromCallBaseContext() local
516 if (!AA) in getArgumentStateFromCallBaseContext()
519 static_cast<const StateType &>(AA->getState()); in getArgumentStateFromCallBaseContext()
594 if (!AA::hasAssumedIRAttr<IRAttributeKind>( in updateImpl()
600 const AAType *AA = in updateImpl() local
602 if (!AA) in updateImpl()
604 Changed |= clampStateAndIndicateChange(S, AA->getState()); in updateImpl()
618 static void followUsesInContext(AAType &AA, Attributor &A, in followUsesInContext() argument
628 if (Found && AA.followUseInMBEC(A, U, UserI, State)) in followUsesInContext()
645 static void followUsesInMBEC(AAType &AA, Attributor &A, StateType &S, in followUsesInMBEC() argument
654 for (const Use &U : AA.getIRPosition().getAssociatedValue().uses()) in followUsesInMBEC()
657 followUsesInContext<AAType>(AA, A, *Explorer, &CtxI, Uses, S); in followUsesInMBEC()
714 followUsesInContext(AA, A, *Explorer, &BB->front(), Uses, ChildState); in followUsesInMBEC()
732 namespace AA { namespace
751 template <> struct DenseMapInfo<AA::RangeTy> {
752 static inline AA::RangeTy getEmptyKey() { in getEmptyKey()
754 return AA::RangeTy{EmptyKey, EmptyKey}; in getEmptyKey()
757 static inline AA::RangeTy getTombstoneKey() { in getTombstoneKey()
759 return AA::RangeTy{TombstoneKey, TombstoneKey}; in getTombstoneKey()
762 static unsigned getHashValue(const AA::RangeTy &Range) { in getHashValue()
768 static bool isEqual(const AA::RangeTy &A, const AA::RangeTy B) { in isEqual()
787 struct AA::PointerInfo::State : public AbstractState {
881 AA::RangeTy Range, in forallInterferingAccesses()
887 AA::RangeTy ItRange = It.getFirst(); in forallInterferingAccesses()
904 AA::RangeTy &Range) const { in forallInterferingAccesses()
928 ChangeStatus AA::PointerInfo::State::addAccess( in addAccess()
1028 return Offsets.front() == AA::RangeTy::Unknown; in isUnknown()
1034 Offsets.push_back(AA::RangeTy::Unknown); in setUnknown()
1063 : public StateWrapper<AA::PointerInfo::State, AAPointerInfo> {
1064 using BaseTy = StateWrapper<AA::PointerInfo::State, AAPointerInfo>;
1087 AA::RangeTy Range, in forallInterferingAccesses()
1097 AA::RangeTy &Range, in forallInterferingAccesses()
1106 bool IsAssumedNoSync = AA::hasAssumedIRAttr<Attribute::NoSync>( in forallInterferingAccesses()
1129 AA::isAssumedThreadLocalObject(A, getAssociatedValue(), *this); in forallInterferingAccesses()
1173 AA::hasAssumedIRAttr<Attribute::NoRecurse>( in forallInterferingAccesses()
1191 if (!AA::isGPU(M)) in forallInterferingAccesses()
1193 switch (AA::GPUAddressSpace(V->getType()->getPointerAddressSpace())) { in forallInterferingAccesses()
1194 case AA::GPUAddressSpace::Shared: in forallInterferingAccesses()
1195 case AA::GPUAddressSpace::Constant: in forallInterferingAccesses()
1196 case AA::GPUAddressSpace::Local: in forallInterferingAccesses()
1216 if (AA::hasAssumedIRAttr<Attribute::NoRecurse>( in forallInterferingAccesses()
1233 AA::InstExclusionSetTy ExclusionSet; in forallInterferingAccesses()
1299 if (!AA::isPotentiallyReachable(A, I, *Acc.getRemoteInst(), QueryingAA, in forallInterferingAccesses()
1306 if (!AA::isPotentiallyReachable(A, *Acc.getRemoteInst(), I, QueryingAA, in forallInterferingAccesses()
1368 using namespace AA::PointerInfo; in translateAndAddStateFromCallee()
1399 using namespace AA::PointerInfo; in translateAndAddState()
1412 auto NewRanges = Offset == AA::RangeTy::Unknown in translateAndAddState()
1413 ? AA::RangeTy::getUnknown() in translateAndAddState()
1466 using namespace AA::PointerInfo; in handleAccess()
1467 auto Size = AA::RangeTy::Unknown; in handleAccess()
1593 using namespace AA::PointerInfo; in updateImpl()
1833 UsedAssumedInformation, AA::Interprocedural); in updateImpl()
1861 *ValueOp, *this, UsedAssumedInformation, AA::Interprocedural); in updateImpl()
1966 using namespace AA::PointerInfo; in updateImpl()
1972 int64_t LengthVal = AA::RangeTy::Unknown; in updateImpl()
2012 if (!AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
2017 if (AA::isAssumedReadNone(A, getIRPosition(), *this, IsKnown)) in updateImpl()
2019 bool ReadOnly = AA::isAssumedReadOnly(A, getIRPosition(), *this, IsKnown); in updateImpl()
2022 return addAccess(A, AA::RangeTy::getUnknown(), *getCtxI(), nullptr, Kind, in updateImpl()
2052 assert(!AA::hasAssumedIRAttr<Attribute::NoUnwind>( in initialize()
2074 return AA::hasAssumedIRAttr<Attribute::NoUnwind>( in updateImpl()
2177 assert(!AA::hasAssumedIRAttr<Attribute::NoSync>(A, nullptr, getIRPosition(), in initialize()
2193 return AA::isNoSyncInst(A, I, *this); in updateImpl()
2204 if (AA::hasAssumedIRAttr<Attribute::NoSync>( in updateImpl()
2250 assert(!AA::hasAssumedIRAttr<Attribute::NoFree>(A, nullptr, getIRPosition(), in initialize()
2259 return AA::hasAssumedIRAttr<Attribute::NoFree>( in updateImpl()
2307 if (AA::hasAssumedIRAttr<Attribute::NoFree>(A, this, in updateImpl()
2323 return AA::hasAssumedIRAttr<Attribute::NoFree>( in updateImpl()
2372 if (AA::hasAssumedIRAttr<Attribute::NoFree>(A, this, ArgPos, in updateImpl()
2439 SmallVector<AA::ValueAndContext> Worklist; in isImpliedByIR()
2454 if (llvm::any_of(Worklist, [&](AA::ValueAndContext VAC) { in isImpliedByIR()
2514 AA::hasAssumedIRAttr<Attribute::NonNull>(A, &QueryingAA, IRP, in getKnownNonNullAndDerefBytesForUse()
2589 return AA::hasAssumedIRAttr<Attribute::NonNull>( in updateImpl()
2596 SmallVector<AA::ValueAndContext> Values; in updateImpl()
2598 AA::AnyScope, UsedAssumedInformation)) in updateImpl()
2608 return AA::hasAssumedIRAttr<Attribute::NonNull>( in updateImpl()
2614 if (AA::hasAssumedIRAttr<Attribute::NonNull>( in updateImpl()
2617 AA::hasAssumedIRAttr<Attribute::NonNull>( in updateImpl()
2699 assert(!AA::hasAssumedIRAttr<Attribute::MustProgress>( in initialize()
2717 if (AA::hasAssumedIRAttr<Attribute::WillReturn>( in updateImpl()
2727 return AA::hasAssumedIRAttr<Attribute::MustProgress>( in updateImpl()
2760 if (!AA::hasAssumedIRAttr<Attribute::MustProgress>( in updateImpl()
2782 assert(!AA::hasAssumedIRAttr<Attribute::NoRecurse>( in initialize()
2803 if (!AA::hasAssumedIRAttr<Attribute::NoRecurse>( in updateImpl()
3018 AA::hasAssumedIRAttr<Attribute::NoUndef>( in updateImpl()
3025 UsedAssumedInformation, AA::Interprocedural); in updateImpl()
3038 AA::hasAssumedIRAttr<Attribute::NonNull>( in updateImpl()
3071 AA::hasAssumedIRAttr<Attribute::NonNull>( in updateImpl()
3100 AA::hasAssumedIRAttr<Attribute::NoUndef>( in updateImpl()
3202 UsedAssumedInformation, AA::Interprocedural); in stopOnUndefOrAssumed()
3277 assert(!AA::hasAssumedIRAttr<Attribute::WillReturn>( in initialize()
3288 if (AA::isAssumedReadOnly(A, getIRPosition(), *this, IsKnown)) in isImpliedByMustprogressAndReadonly()
3301 if (AA::hasAssumedIRAttr<Attribute::WillReturn>( in updateImpl()
3309 return AA::hasAssumedIRAttr<Attribute::NoRecurse>( in updateImpl()
3380 const AA::InstExclusionSetTy *ExclusionSet = nullptr;
3389 using InstSetDMI = DenseMapInfo<const AA::InstExclusionSetTy *>; in computeHashValue()
3402 const AA::InstExclusionSetTy *ES, bool MakeUnique) in ReachabilityQueryInfo()
3418 using InstSetDMI = DenseMapInfo<const AA::InstExclusionSetTy *>;
3575 const AA::InstExclusionSetTy *ExclusionSet) const override { in isAssumedReachable()
3615 const AA::InstExclusionSetTy *ExclusionSet) { in isReachableImpl()
3792 if (AA::hasAssumedIRAttr<Attribute::NoSync>( in updateImpl()
3799 if (AA::isAssumedReadOnly(A, getIRPosition(), *this, IsKnown)) in updateImpl()
3912 if (AA::hasAssumedIRAttr<Attribute::NoCapture>( in isKnownNoAliasDueToNoAliasPreservation()
3919 if (!AA::isPotentiallyReachable( in isKnownNoAliasDueToNoAliasPreservation()
3944 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in isKnownNoAliasDueToNoAliasPreservation()
3982 if (!AA::hasAssumedIRAttr<Attribute::NoAlias>( in updateImpl()
4024 if (!AA::hasAssumedIRAttr<Attribute::NoAlias>( in updateImpl()
4030 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
4131 if (!AA::hasAssumedIRAttr<Attribute::NoUnwind>( in isAssumedSideEffectFree()
4136 return AA::isAssumedReadOnly(A, CallIRP, *this, IsKnown); in isAssumedSideEffectFree()
4183 if (!AA::getPotentialCopiesOfStoredValue(A, SI, PotentialCopies, *this, in isDeadStore()
4511 bool MayReturn = !AA::hasAssumedIRAttr<Attribute::NoReturn>( in manifest()
4632 AbstractAttribute &AA, in identifyAliveSuccessors() argument
4637 if (AA::hasAssumedIRAttr<Attribute::NoReturn>( in identifyAliveSuccessors()
4638 A, &AA, IPos, DepClassTy::OPTIONAL, IsKnownNoReturn)) in identifyAliveSuccessors()
4649 AbstractAttribute &AA, in identifyAliveSuccessors() argument
4652 identifyAliveSuccessors(A, cast<CallBase>(II), AA, AliveSuccessors); in identifyAliveSuccessors()
4663 if (AA::hasAssumedIRAttr<Attribute::NoUnwind>( in identifyAliveSuccessors()
4664 A, &AA, IPos, DepClassTy::OPTIONAL, IsKnownNoUnwind)) { in identifyAliveSuccessors()
4675 AbstractAttribute &AA, in identifyAliveSuccessors() argument
4682 A.getAssumedConstant(*BI.getCondition(), AA, UsedAssumedInformation); in identifyAliveSuccessors()
4700 AbstractAttribute &AA, in identifyAliveSuccessors() argument
4703 SmallVector<AA::ValueAndContext> Values; in identifyAliveSuccessors()
4704 if (!A.getAssumedSimplifiedValues(IRPosition::value(*SI.getCondition()), &AA, in identifyAliveSuccessors()
4705 Values, AA::AnyScope, in identifyAliveSuccessors()
4723 if (auto *CI = dyn_cast_if_present<ConstantInt>(AA::getWithType(*V, Ty))) { in identifyAliveSuccessors()
4730 if (!all_of(Values, [&](AA::ValueAndContext &VAC) { in identifyAliveSuccessors()
4914 AA::hasAssumedIRAttr<Attribute::NonNull>( in initialize()
4968 bool IsAssumedNonNull = AA::hasAssumedIRAttr<Attribute::NonNull>( in manifest()
4982 bool IsAssumedNonNull = AA::hasAssumedIRAttr<Attribute::NonNull>( in getDeducedAttributes()
4999 IsAssumedNonNull = AA::hasAssumedIRAttr<Attribute::NonNull>( in getAsStr()
5019 SmallVector<AA::ValueAndContext> Values; in updateImpl()
5021 AA::AnyScope, UsedAssumedInformation)) { in updateImpl()
5040 const auto *AA = A.getAAFor<AADereferenceable>( in updateImpl() local
5043 if (!AA || (!Stripped && this == AA)) { in updateImpl()
5051 const DerefState &DS = AA->getState(); in updateImpl()
5066 if (this == AA) { in updateImpl()
5308 SmallVector<AA::ValueAndContext> Values; in updateImpl()
5310 AA::AnyScope, UsedAssumedInformation)) { in updateImpl()
5322 const auto *AA = A.getAAFor<AAAlign>(*this, IRPosition::value(V), in updateImpl() local
5324 if (!AA || (!Stripped && this == AA)) { in updateImpl()
5346 const AAAlign::StateType &DS = AA->getState(); in updateImpl()
5454 assert(!AA::hasAssumedIRAttr<Attribute::NoReturn>( in initialize()
5547 if (AA::hasAssumedIRAttr<Attribute::NoRecurse>( in updateImpl()
5579 if (AA::isPotentiallyReachable( in updateImpl()
5592 AA::isDynamicallyUnique(A, *this, *Ptr)) in updateImpl()
5774 assert(!AA::hasAssumedIRAttr<Attribute::NoCapture>( in initialize()
5852 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in checkUse()
5902 if (AA::isAssumedReadOnly(A, FnPos, *this, IsKnown)) { in updateImpl()
5913 SmallVector<AA::ValueAndContext> Values; in updateImpl()
5915 AA::ValueScope::Intraprocedural, in updateImpl()
5919 for (const AA::ValueAndContext &VAC : Values) { in updateImpl()
5932 if (AA::hasAssumedIRAttr<Attribute::NoUnwind>( in updateImpl()
6005 if (AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
6073 SimplifiedAssociatedValue = AA::combineOptionalValuesInAAValueLatice( in unionAssumed()
6127 if (auto *TypedV = AA::getWithType(V, Ty)) in ensureType()
6182 V, QueryingAA, UsedAssumedInformation, AA::Interprocedural); in reproduceValue()
6190 if (CtxI && AA::isValidAtPosition(AA::ValueAndContext(*EffectiveV, *CtxI), in reproduceValue()
6225 IRP, QueryingAA, UsedAssumedInformation, AA::Interprocedural); in checkAndUpdate()
6235 const auto *AA = in askSimplifiedValueFor() local
6237 if (!AA) in askSimplifiedValueFor()
6240 std::optional<Constant *> COpt = AA->getAssumedConstant(A); in askSimplifiedValueFor()
6244 A.recordDependence(*AA, *this, DepClassTy::OPTIONAL); in askSimplifiedValueFor()
6249 A.recordDependence(*AA, *this, DepClassTy::OPTIONAL); in askSimplifiedValueFor()
6312 if (!AA::isAssumedReadOnly(A, getIRPosition(), *this, IsKnown)) in updateImpl()
6337 if (!AA::isDynamicallyUnique(A, *this, **SimpleArgOp)) in updateImpl()
6787 std::optional<APInt> getAPInt(Attributor &A, const AbstractAttribute &AA, in getAPInt()
6791 A.getAssumedConstant(V, AA, UsedAssumedInformation); in getAPInt()
6799 std::optional<APInt> getSize(Attributor &A, const AbstractAttribute &AA, in getSize()
6804 A.getAssumedConstant(*V, AA, UsedAssumedInformation)) in getSize()
6914 if (!AA::hasAssumedIRAttr<Attribute::NoSync>( in updateImpl()
7003 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
7008 bool IsAssumedNoFree = AA::hasAssumedIRAttr<Attribute::NoFree>( in updateImpl()
7050 AA::isAssumedThreadLocalObject( in updateImpl()
7670 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
7678 if (!AA::hasAssumedIRAttr<Attribute::NoAlias>( in updateImpl()
7685 if (!AA::isAssumedReadOnly(A, IRP, *this, IsKnown)) { in updateImpl()
8125 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
8185 return !AA::hasAssumedIRAttr<Attribute::NoCapture>( in followUsersOfUseIn()
8555 if ((AccessAS == (unsigned)AA::GPUAddressSpace::Constant || in categorizePtrValue()
8556 (ObjectAS == (unsigned)AA::GPUAddressSpace::Constant && in categorizePtrValue()
8558 AA::isGPU(*I.getModule())) in categorizePtrValue()
8591 if (AA::hasAssumedIRAttr<Attribute::NoAlias>( in categorizePtrValue()
8610 const auto *AA = A.getAAFor<AAUnderlyingObjects>( in categorizePtrValue() local
8612 if (!AA || !AA->forallUnderlyingObjects(Pred, AA::Intraprocedural)) { in categorizePtrValue()
9042 if (!AA::isValidInScope(getAssociatedValue(), CtxI->getFunction())) in isValidCtxInstructionForOutsideAnalysis()
9266 UsedAssumedInformation, AA::Interprocedural); in calculateBinaryOperator()
9275 UsedAssumedInformation, AA::Interprocedural); in calculateBinaryOperator()
9323 UsedAssumedInformation, AA::Interprocedural); in calculateCastInst()
9355 UsedAssumedInformation, AA::Interprocedural); in calculateCmpInst()
9364 UsedAssumedInformation, AA::Interprocedural); in calculateCmpInst()
9436 UsedAssumedInformation, AA::Interprocedural); in updateImpl()
9444 const auto *AA = A.getAAFor<AAValueConstantRange>( in updateImpl() local
9449 if (AA) in updateImpl()
9450 T.unionAssumed(AA->getAssumedConstantRange(A, CtxI)); in updateImpl()
9600 SmallVector<AA::ValueAndContext> Values; in fillSetWithConstantValues()
9602 if (!A.getAssumedSimplifiedValues(IRP, *this, Values, AA::Interprocedural, in fillSetWithConstantValues()
10111 auto *AA = A.getAAFor<AAPotentialConstantValues>( in updateImpl() local
10113 if (!AA) in updateImpl()
10115 const auto &S = AA->getAssumed(); in updateImpl()
10198 AA::Interprocedural) in manifest()
10222 return AA::hasAssumedIRAttr<Attribute::NoUndef>( in updateImpl()
10229 SmallVector<AA::ValueAndContext> Values; in updateImpl()
10231 AA::AnyScope, UsedAssumedInformation)) in updateImpl()
10384 SmallVector<AA::ValueAndContext> Values; in updateImpl()
10387 AA::AnyScope, UsedAssumedInformation)) { in updateImpl()
10393 const auto *AA = A.getAAFor<AANoFPClass>(*this, IRPosition::value(V), in updateImpl() local
10395 if (!AA || this == AA) { in updateImpl()
10399 static_cast<const AANoFPClass::StateType &>(AA->getState()); in updateImpl()
10530 SmallVector<AA::ValueAndContext> Values; in updateImpl()
10541 AA::AnyScope, UsedAssumedInformation)) { in updateImpl()
10629 const AA::InstExclusionSetTy *ExclusionSet) const override { in instructionCanReach()
10727 const auto *AA = A.getAAFor<AAType>(QueryingAA, IRP, DepClassTy::NONE); in askForAssumedConstant() local
10728 if (!AA) in askForAssumedConstant()
10731 std::optional<Constant *> COpt = AA->getAssumedConstant(A); in askForAssumedConstant()
10734 A.recordDependence(*AA, QueryingAA, DepClassTy::OPTIONAL); in askForAssumedConstant()
10738 A.recordDependence(*AA, QueryingAA, DepClassTy::OPTIONAL); in askForAssumedConstant()
10745 Attributor &A, const AbstractAttribute &AA, const IRPosition &IRP, in getSingleValue() argument
10746 SmallVectorImpl<AA::ValueAndContext> &Values) { in getSingleValue()
10750 V = AA::combineOptionalValuesInAAValueLatice(V, It.getValue(), &Ty); in getSingleValue()
10776 addValue(A, getState(), *Stripped, getCtxI(), AA::AnyScope, in initialize()
10794 const AbstractAttribute &AA, in askOtherAA()
10798 std::optional<Constant *> C = askForAssumedConstant<AAType>(A, AA, IRP, Ty); in askOtherAA()
10802 if (auto *CC = AA::getWithType(**C, Ty)) in askOtherAA()
10808 const Instruction *CtxI, AA::ValueScope S, in addValue()
10846 if (!AA::isValidInScope(*VPtr, AnchorScope)) in addValue()
10847 S = AA::ValueScope(S | AA::Interprocedural); in addValue()
10855 AA::ValueAndContext I;
10856 AA::ValueScope S;
10868 bool recurseForValue(Attributor &A, const IRPosition &IRP, AA::ValueScope S) { in recurseForValue()
10869 SmallMapVector<AA::ValueAndContext, int, 8> ValueScopeMap; in recurseForValue()
10870 for (auto CS : {AA::Intraprocedural, AA::Interprocedural}) { in recurseForValue()
10875 SmallVector<AA::ValueAndContext> Values; in recurseForValue()
10885 AA::ValueScope(It.second), getAnchorScope()); in recurseForValue()
10893 if (It.second == AA::Intraprocedural) in giveUpOnIntraprocedural()
10896 AA::Interprocedural, getAnchorScope()); in giveUpOnIntraprocedural()
10899 addValue(A, NewS, getAssociatedValue(), getCtxI(), AA::Intraprocedural, in giveUpOnIntraprocedural()
10907 getState().unionAssumed({{getAssociatedValue(), getCtxI()}, AA::AnyScope}); in indicatePessimisticFixpoint()
10919 SmallVector<AA::ValueAndContext> Values; in manifest()
10920 for (AA::ValueScope S : {AA::Interprocedural, AA::Intraprocedural}) { in manifest()
10931 !AA::isValidAtPosition({*NewV, *getCtxI()}, A.getInfoCache())) in manifest()
10940 Attributor &A, SmallVectorImpl<AA::ValueAndContext> &Values, in getAssumedSimplifiedValues()
10941 AA::ValueScope S, bool RecurseForSelectAndPHI = false) const override { in getAssumedSimplifiedValues()
10992 SmallVector<AA::ValueAndContext> LHSValues, RHSValues; in handleCmp()
10994 SmallVector<AA::ValueAndContext> &Values) { in handleCmp()
10997 AA::Intraprocedural, UsedAssumedInformation)) { in handleCmp()
10999 Values.push_back(AA::ValueAndContext{V, II.I.getCtxI()}); in handleCmp()
11043 auto *TypedLHS = AA::getWithType(LHSV, *LHS->getType()); in handleCmp()
11044 auto *TypedRHS = AA::getWithType(RHSV, *RHS->getType()); in handleCmp()
11072 bool IsAssumedNonNull = AA::hasAssumedIRAttr<Attribute::NonNull>( in handleCmp()
11131 if (!AA::getPotentiallyLoadedValues(A, LI, PotentialCopies, in handleLoadInst()
11169 bool ScopeIsLocal = (II.S & AA::Intraprocedural); in handleLoadInst()
11172 AllLocal &= AA::isValidInScope(*PC, getAnchorScope()); in handleLoadInst()
11173 return AA::isDynamicallyUnique(A, *this, *PC); in handleLoadInst()
11186 Worklist.push_back({{*PotentialCopy, CtxI}, AA::Interprocedural}); in handleLoadInst()
11190 addValue(A, getState(), LI, CtxI, AA::Intraprocedural, getAnchorScope()); in handleLoadInst()
11260 UsedAssumedInformation, AA::Intraprocedural); in handleGenericInst()
11325 Worklist.push_back({{*InitialV, getCtxI()}, AA::AnyScope}); in genericValueTraversal()
11333 AA::ValueScope S = II.S; in genericValueTraversal()
11352 NewV = AA::getWithType(*V->stripPointerCasts(), *V->getType()); in genericValueTraversal()
11426 SmallVector<AA::ValueAndContext> Values; in updateImpl()
11433 AA::Interprocedural, in updateImpl()
11449 addValue(A, getState(), *It.getValue(), It.getCtxI(), AA::AnyScope, in updateImpl()
11453 if (!AA::isDynamicallyUnique(A, *this, *It.getValue())) in updateImpl()
11458 addValue(A, getState(), *It.getValue(), It.getCtxI(), AA::AnyScope, in updateImpl()
11462 addValue(A, getState(), *It.getValue(), It.getCtxI(), AA::Interprocedural, in updateImpl()
11495 addValue(A, getState(), Arg, nullptr, AA::AnyScope, F); in initialize()
11513 SmallVector<AA::ValueAndContext> Values; in updateImpl()
11517 for (AA::ValueScope S : {AA::Interprocedural, AA::Intraprocedural}) { in updateImpl()
11525 for (const AA::ValueAndContext &VAC : Values) in updateImpl()
11539 addValue(A, getState(), *RetI.getOperand(0), &RetI, AA::AnyScope, in updateImpl()
11557 const Instruction *CtxI, AA::ValueScope S, in addValue()
11569 SmallVector<AA::ValueAndContext> Values; in manifest()
11570 if (!getAssumedSimplifiedValues(A, Values, AA::ValueScope::Intraprocedural, in manifest()
11591 if (AA::isValidAtPosition({*NewVal, RetI}, A.getInfoCache())) in manifest()
11660 SmallVector<AA::ValueAndContext> Values; in updateImpl()
11662 Values, AA::Intraprocedural, in updateImpl()
11678 if (AA::isDynamicallyUnique(A, *this, *V) && in updateImpl()
11679 AA::isValidInScope(*V, Caller)) { in updateImpl()
11681 SmallVector<AA::ValueAndContext> ArgValues; in updateImpl()
11686 if (recurseForValue(A, IRP, AA::AnyScope)) in updateImpl()
11689 addValue(A, getState(), *V, CB, AA::AnyScope, getAnchorScope()); in updateImpl()
11698 Values, AA::Interprocedural, in updateImpl()
11705 if (!AA::isDynamicallyUnique(A, *this, *V)) in updateImpl()
11707 if (AA::isValidInScope(*V, Caller)) { in updateImpl()
11708 addValue(A, getState(), *V, CB, AA::AnyScope, getAnchorScope()); in updateImpl()
11711 addValue(A, getState(), *V, CB, AA::Interprocedural, in updateImpl()
11906 AA::ValueScope Scope) { in updateImpl()
11909 SmallVector<AA::ValueAndContext> Values; in updateImpl()
11957 Changed |= DoUpdate(IntraAssumedUnderlyingObjects, AA::Intraprocedural); in updateImpl()
11958 Changed |= DoUpdate(InterAssumedUnderlyingObjects, AA::Interprocedural); in updateImpl()
11965 AA::ValueScope Scope = AA::Interprocedural) const override { in forallUnderlyingObjects()
11969 auto &AssumedUnderlyingObjects = Scope == AA::Intraprocedural in forallUnderlyingObjects()
11984 AA::ValueScope Scope) { in handleIndirect()
11986 const auto *AA = A.getAAFor<AAUnderlyingObjects>( in handleIndirect() local
11992 if (!AA || !AA->forallUnderlyingObjects(Pred, Scope)) in handleIndirect()
12224 SmallVector<AA::ValueAndContext> Values; in updateImpl()
12226 AA::ValueScope::AnyScope, in updateImpl()
12257 if (AA::hasAssumedIRAttr<Attribute::NoUndef>( in updateImpl()
12704 if (!AA::hasAssumedIRAttr<Attribute::NoCapture>( in updateImpl()
12934 AA = new (A.Allocator) CLASS##SUFFIX(IRP, A); \
12940 CLASS *AA = nullptr; \
12951 return *AA; \
12956 CLASS *AA = nullptr; \
12967 return *AA; \
12972 CLASS *AA = nullptr; \
12979 return *AA; \
12984 CLASS *AA = nullptr; \
12995 return *AA; \
13000 CLASS *AA = nullptr; \
13011 return *AA; \
13016 CLASS *AA = nullptr; \
13027 return *AA; \