Lines Matching refs:AA
201 bool AA::isGPU(const Module &M) { in isGPU()
206 bool AA::isNoSyncInst(Attributor &A, const Instruction &I, in isNoSyncInst()
221 return AA::hasAssumedIRAttr<Attribute::NoSync>( in isNoSyncInst()
232 bool AA::isDynamicallyUnique(Attributor &A, const AbstractAttribute &QueryingAA, in isDynamicallyUnique()
243 AA::getInitialValueForObj(Attributor &A, const AbstractAttribute &QueryingAA, in getInitialValueForObj()
245 const DataLayout &DL, AA::RangeTy *RangePtr) { in getInitialValueForObj()
281 bool AA::isValidInScope(const Value &V, const Function *Scope) { in isValidInScope()
291 bool AA::isValidAtPosition(const AA::ValueAndContext &VAC, in isValidAtPosition()
317 Value *AA::getWithType(Value &V, Type &Ty) { in getWithType()
340 AA::combineOptionalValuesInAAValueLatice(const std::optional<Value *> &A, in combineOptionalValuesInAAValueLatice()
394 AA::Interprocedural) == &Obj) in getPotentialCopiesOfMemoryValue()
432 Value *AdjV = AA::getWithType(V, *I.getType()); in getPotentialCopiesOfMemoryValue()
526 AA::RangeTy Range; in getPotentialCopiesOfMemoryValue()
543 Value *InitialValue = AA::getInitialValueForObj( in getPotentialCopiesOfMemoryValue()
590 bool AA::getPotentiallyLoadedValues( in getPotentiallyLoadedValues()
600 bool AA::getPotentialCopiesOfStoredValue( in getPotentialCopiesOfStoredValue()
613 if (AA::hasAssumedIRAttr<Attribute::ReadNone>( in isAssumedReadOnlyOrReadNone()
617 } else if (AA::hasAssumedIRAttr<Attribute::ReadOnly>( in isAssumedReadOnlyOrReadNone()
649 bool AA::isAssumedReadOnly(Attributor &A, const IRPosition &IRP, in isAssumedReadOnly()
654 bool AA::isAssumedReadNone(Attributor &A, const IRPosition &IRP, in isAssumedReadNone()
664 const AA::InstExclusionSetTy *ExclusionSet, in isPotentiallyReachable()
817 bool AA::isPotentiallyReachable( in isPotentiallyReachable()
820 const AA::InstExclusionSetTy *ExclusionSet, in isPotentiallyReachable()
827 bool AA::isPotentiallyReachable( in isPotentiallyReachable()
830 const AA::InstExclusionSetTy *ExclusionSet, in isPotentiallyReachable()
836 bool AA::isAssumedThreadLocalObject(Attributor &A, Value &Obj, in isAssumedThreadLocalObject()
849 bool IsAssumedNoCapture = AA::hasAssumedIRAttr<Attribute::NoCapture>( in isAssumedThreadLocalObject()
873 (int)AA::GPUAddressSpace::Local) { in isAssumedThreadLocalObject()
879 (int)AA::GPUAddressSpace::Constant) { in isAssumedThreadLocalObject()
890 bool AA::isPotentiallyAffectedByBarrier(Attributor &A, const Instruction &I, in isPotentiallyAffectedByBarrier()
919 bool AA::isPotentiallyAffectedByBarrier(Attributor &A, in isPotentiallyAffectedByBarrier()
930 if (AA::isAssumedThreadLocalObject(A, Obj, QueryingAA)) in isPotentiallyAffectedByBarrier()
1398 const AbstractAttribute &AA, in getAssumedConstant() argument
1404 std::optional<Value *> SimplifiedV = CB(IRP, &AA, UsedAssumedInformation); in getAssumedConstant()
1413 SmallVector<AA::ValueAndContext> Values; in getAssumedConstant()
1414 if (getAssumedSimplifiedValues(IRP, &AA, Values, in getAssumedConstant()
1415 AA::ValueScope::Interprocedural, in getAssumedConstant()
1420 AAPotentialValues::getSingleValue(*this, AA, IRP, Values))) in getAssumedConstant()
1427 const IRPosition &IRP, const AbstractAttribute *AA, in getAssumedSimplified() argument
1428 bool &UsedAssumedInformation, AA::ValueScope S) { in getAssumedSimplified()
1433 return CB(IRP, AA, UsedAssumedInformation); in getAssumedSimplified()
1435 SmallVector<AA::ValueAndContext> Values; in getAssumedSimplified()
1436 if (!getAssumedSimplifiedValues(IRP, AA, Values, S, UsedAssumedInformation)) in getAssumedSimplified()
1440 if (AA) in getAssumedSimplified()
1441 if (Value *V = AAPotentialValues::getSingleValue(*this, *AA, IRP, Values)) in getAssumedSimplified()
1450 const IRPosition &InitialIRP, const AbstractAttribute *AA, in getAssumedSimplifiedValues() argument
1451 SmallVectorImpl<AA::ValueAndContext> &Values, AA::ValueScope S, in getAssumedSimplifiedValues()
1465 std::optional<Value *> CBResult = CB(IRP, AA, UsedAssumedInformation); in getAssumedSimplifiedValues()
1471 if ((S & AA::ValueScope::Interprocedural) || in getAssumedSimplifiedValues()
1472 AA::isValidInScope(*V, IRP.getAnchorScope())) in getAssumedSimplifiedValues()
1473 Values.push_back(AA::ValueAndContext{*V, nullptr}); in getAssumedSimplifiedValues()
1481 getOrCreateAAFor<AAPotentialValues>(IRP, AA, DepClassTy::OPTIONAL); in getAssumedSimplifiedValues()
1515 std::optional<Value *> V, CallBase &CB, const AbstractAttribute &AA, in translateArgumentToCallSiteContent() argument
1526 IRPosition::callsite_argument(CB, Arg->getArgNo()), AA, in translateArgumentToCallSiteContent()
1527 UsedAssumedInformation, AA::Intraprocedural); in translateArgumentToCallSiteContent()
1535 AbstractAttribute *AA = It.getSecond(); in ~Attributor() local
1536 AA->~AbstractAttribute(); in ~Attributor()
1540 bool Attributor::isAssumedDead(const AbstractAttribute &AA, in isAssumedDead() argument
1546 const IRPosition &IRP = AA.getIRPosition(); in isAssumedDead()
1549 return isAssumedDead(IRP, &AA, FnLivenessAA, UsedAssumedInformation, in isAssumedDead()
1827 if (AA::getPotentialCopiesOfStoredValue( in checkForAllUses()
2002 AA::ValueScope S, in checkForAllReturnedValues()
2011 SmallVector<AA::ValueAndContext> Values; in checkForAllReturnedValues()
2017 return llvm::all_of(Values, [&](const AA::ValueAndContext &VAC) { in checkForAllReturnedValues()
2191 for (AbstractAttribute *AA : Worklist) { in runTillFixpoint()
2192 const auto &AAState = AA->getState(); in runTillFixpoint()
2194 if (updateAA(*AA) == ChangeStatus::CHANGED) in runTillFixpoint()
2195 ChangedAAs.push_back(AA); in runTillFixpoint()
2200 InvalidAAs.insert(AA); in runTillFixpoint()
2261 void Attributor::registerForUpdate(AbstractAttribute &AA) { in registerForUpdate() argument
2262 assert(AA.isQueryAA() && in registerForUpdate()
2264 QueryAAsAwaitingUpdate.insert(&AA); in registerForUpdate()
2275 AbstractAttribute *AA = cast<AbstractAttribute>(DepAA.getPointer()); in manifestAttributes() local
2276 AbstractState &State = AA->getState(); in manifestAttributes()
2286 if (AA->hasCallBaseContext()) in manifestAttributes()
2292 if (AA->getCtxI() && !isRunOn(*AA->getAnchorScope())) in manifestAttributes()
2297 if (isAssumedDead(*AA, nullptr, UsedAssumedInformation, in manifestAttributes()
2305 ChangeStatus LocalChange = AA->manifest(*this); in manifestAttributes()
2307 AA->trackStatistics(); in manifestAttributes()
2308 LLVM_DEBUG(dbgs() << "[Attributor] Manifest " << LocalChange << " : " << *AA in manifestAttributes()
2684 ChangeStatus Attributor::updateAA(AbstractAttribute &AA) { in updateAA() argument
2686 return AA.getName() + std::to_string(AA.getIRPosition().getPositionKind()); in updateAA()
2695 auto &AAState = AA.getState(); in updateAA()
2698 if (!isAssumedDead(AA, nullptr, UsedAssumedInformation, in updateAA()
2700 CS = AA.update(*this); in updateAA()
2702 if (!AA.isQueryAA() && DV.empty() && !AA.getState().isAtFixpoint()) { in updateAA()
2709 RerunCS = AA.update(*this); in updateAA()
2714 if (RerunCS == ChangeStatus::UNCHANGED && !AA.isQueryAA() && DV.empty()) in updateAA()
2967 bool Attributor::shouldSeedAttribute(AbstractAttribute &AA) { in shouldSeedAttribute() argument
2971 Result = llvm::is_contained(SeedAllowList, AA.getName()); in shouldSeedAttribute()
2972 Function *Fn = AA.getAnchorScope(); in shouldSeedAttribute()
3342 if (!AA::hasAssumedIRAttr<AK>(*this, nullptr, IRP, DepClassTy::NONE, in checkAndQueryIRAttr()
3441 AA::Intraprocedural); in identifyDefaultAbstractAttributes()
3483 AA::Intraprocedural); in identifyDefaultAbstractAttributes()
3552 AA::Intraprocedural); in identifyDefaultAbstractAttributes()
3572 AA::Intraprocedural); in identifyDefaultAbstractAttributes()
3628 UsedAssumedInformation, AA::Intraprocedural); in identifyDefaultAbstractAttributes()
3635 UsedAssumedInformation, AA::Intraprocedural); in identifyDefaultAbstractAttributes()
3719 raw_ostream &llvm::operator<<(raw_ostream &OS, const AbstractAttribute &AA) { in operator <<() argument
3720 AA.print(OS); in operator <<()
3780 auto *AA = DepAA.getPointer(); in printWithDeps() local
3782 AA->print(OS); in printWithDeps()
3833 [&](Attributor &, const AbstractAttribute &AA, CallBase &CB, in runAttributorOnFunctions()