Lines Matching defs:CtxI
621 const Instruction *CtxI,
624 auto EIt = Explorer.begin(CtxI), EEnd = Explorer.end(CtxI);
647 Instruction &CtxI) {
658 followUsesInContext<AAType>(AA, A, *Explorer, &CtxI, Uses, S);
703 Explorer->checkForAllContext(&CtxI, Pred);
2604 if (Instruction *CtxI = getCtxI())
2605 followUsesInMBEC(*this, A, getState(), *CtxI);
4966 if (Instruction *CtxI = getCtxI())
4967 followUsesInMBEC(*this, A, getState(), *CtxI);
5279 if (Instruction *CtxI = getCtxI())
5280 followUsesInMBEC(*this, A, getState(), *CtxI);
6192 static Value *ensureType(Attributor &A, Value &V, Type &Ty, Instruction *CtxI,
6196 if (CtxI && V.getType()->canLosslesslyBitCastTo(&Ty))
6199 &V, &Ty, "", CtxI->getIterator());
6209 Instruction &I, Type &Ty, Instruction *CtxI,
6211 assert(CtxI && "Cannot reproduce an instruction without context!");
6213 !isSafeToSpeculativelyExecute(&I, CtxI, /* DT */ nullptr,
6217 Value *NewOp = reproduceValue(A, QueryingAA, *Op, Ty, CtxI, Check, VMap);
6232 CloneI->insertBefore(CtxI->getIterator());
6243 Type &Ty, Instruction *CtxI, bool Check,
6257 if (CtxI && AA::isValidAtPosition(AA::ValueAndContext(*EffectiveV, *CtxI),
6259 return ensureType(A, *EffectiveV, Ty, CtxI, Check);
6261 if (Value *NewV = reproduceInst(A, QueryingAA, *I, Ty, CtxI, Check, VMap))
6262 return ensureType(A, *NewV, Ty, CtxI, Check);
6268 Value *manifestReplacementValue(Attributor &A, Instruction *CtxI) const {
6276 if (reproduceValue(A, *this, *NewV, *getAssociatedType(), CtxI,
6278 return reproduceValue(A, *this, *NewV, *getAssociatedType(), CtxI,
7030 Instruction *CtxI = isa<InvokeInst>(AI.CB) ? AI.CB : AI.CB->getNextNode();
7031 if (!Explorer || !Explorer->findInContextOf(UniqueFree, CtxI)) {
9081 const Instruction *CtxI = nullptr) const {
9089 if (!LVI || !CtxI)
9092 const_cast<Instruction *>(CtxI),
9096 /// Return true if \p CtxI is valid for querying outside analyses.
9102 const Instruction *CtxI,
9104 if (!CtxI || (!AllowAACtxI && CtxI == getCtxI()))
9109 if (!AA::isValidInScope(getAssociatedValue(), CtxI->getFunction()))
9120 return DT && DT->dominates(I, CtxI);
9129 const Instruction *CtxI = nullptr) const override {
9130 if (!isValidCtxInstructionForOutsideAnalysis(A, CtxI,
9134 ConstantRange LVIR = getConstantRangeFromLVI(A, CtxI);
9135 ConstantRange SCEVR = getConstantRangeFromSCEV(A, CtxI);
9142 const Instruction *CtxI = nullptr) const override {
9147 if (!isValidCtxInstructionForOutsideAnalysis(A, CtxI,
9151 ConstantRange LVIR = getConstantRangeFromLVI(A, CtxI);
9152 ConstantRange SCEVR = getConstantRangeFromSCEV(A, CtxI);
9324 const Instruction *CtxI,
9359 auto LHSAARange = LHSAA->getAssumedConstantRange(A, CtxI);
9367 auto RHSAARange = RHSAA->getAssumedConstantRange(A, CtxI);
9380 const Instruction *CtxI,
9413 const Instruction *CtxI,
9454 auto LHSAARange = LHSAA->getAssumedConstantRange(A, CtxI);
9455 auto RHSAARange = RHSAA->getAssumedConstantRange(A, CtxI);
9495 auto VisitValueCB = [&](Value &V, const Instruction *CtxI) -> bool {
9515 // Clamp operator is not used to utilize a program point CtxI.
9517 T.unionAssumed(AA->getAssumedConstantRange(A, CtxI));
9526 if (!calculateBinaryOperator(A, BinOp, T, CtxI, QuerriedAAs))
9529 if (!calculateCmpInst(A, CmpI, T, CtxI, QuerriedAAs))
9532 if (!calculateCastInst(A, CastI, T, CtxI, QuerriedAAs))
10281 if (Instruction *CtxI = getCtxI())
10282 followUsesInMBEC(*this, A, getState(), *CtxI);
10387 if (Instruction *CtxI = getCtxI())
10388 followUsesInMBEC(*this, A, getState(), *CtxI);
10436 auto VisitValueCB = [&](Value &V, const Instruction *CtxI) -> bool {
10563 auto VisitValue = [&](Value &V, const Instruction *CtxI) -> bool {
10577 auto ProcessCalledOperand = [&](Value *V, Instruction *CtxI) {
10579 VisitValue(*V, CtxI);
10587 Values.push_back({*V, CtxI});
10851 const Instruction *CtxI, AA::ValueScope S,
10855 if (auto *CB = dyn_cast_or_null<CallBase>(CtxI)) {
10888 CtxI = nullptr;
10892 State.unionAssumed({{*VPtr, CtxI}, S});
11071 /* CtxI */ nullptr, II.S, getAnchorScope());
11081 addValue(A, getState(), *NewV, /* CtxI */ nullptr, II.S,
11091 addValue(A, getState(), *NewV, /* CtxI */ nullptr, II.S,
11124 addValue(A, getState(), *NewV, /* CtxI */ nullptr, II.S,
11138 const Instruction *CtxI = II.I.getCtxI();
11148 Worklist.push_back({{*SI.getFalseValue(), CtxI}, II.S});
11150 Worklist.push_back({{*SI.getTrueValue(), CtxI}, II.S});
11153 Worklist.push_back({{*SI.getTrueValue(), CtxI}, II.S});
11154 Worklist.push_back({{*SI.getFalseValue(), CtxI}, II.S});
11161 addValue(A, getState(), **SimpleV, CtxI, II.S, getAnchorScope());
11211 const Instruction *CtxI = II.I.getCtxI();
11227 Worklist.push_back({{*PotentialCopy, CtxI}, II.S});
11229 Worklist.push_back({{*PotentialCopy, CtxI}, AA::Interprocedural});
11233 addValue(A, getState(), LI, CtxI, AA::Intraprocedural, getAnchorScope());
11375 const Instruction *CtxI = II.I.getCtxI();
11387 addValue(A, getState(), *V, CtxI, S, getAnchorScope());
11408 Worklist.push_back({{*NewV, CtxI}, S});
11422 if (V == InitialV && CtxI == getCtxI()) {
11427 addValue(A, getState(), *V, CtxI, S, getAnchorScope());
11551 auto HandleReturnedValue = [&](Value &V, Instruction *CtxI,
11571 VAC.getCtxI() ? VAC.getCtxI() : CtxI,