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);
2562 if (Instruction *CtxI = getCtxI())
2563 followUsesInMBEC(*this, A, getState(), *CtxI);
4924 if (Instruction *CtxI = getCtxI())
4925 followUsesInMBEC(*this, A, getState(), *CtxI);
5237 if (Instruction *CtxI = getCtxI())
5238 followUsesInMBEC(*this, A, getState(), *CtxI);
6140 static Value *ensureType(Attributor &A, Value &V, Type &Ty, Instruction *CtxI,
6144 if (CtxI && V.getType()->canLosslesslyBitCastTo(&Ty))
6147 &V, &Ty, "", CtxI->getIterator());
6157 Instruction &I, Type &Ty, Instruction *CtxI,
6159 assert(CtxI && "Cannot reproduce an instruction without context!");
6161 !isSafeToSpeculativelyExecute(&I, CtxI, /* DT */ nullptr,
6165 Value *NewOp = reproduceValue(A, QueryingAA, *Op, Ty, CtxI, Check, VMap);
6180 CloneI->insertBefore(CtxI);
6191 Type &Ty, Instruction *CtxI, bool Check,
6205 if (CtxI && AA::isValidAtPosition(AA::ValueAndContext(*EffectiveV, *CtxI),
6207 return ensureType(A, *EffectiveV, Ty, CtxI, Check);
6209 if (Value *NewV = reproduceInst(A, QueryingAA, *I, Ty, CtxI, Check, VMap))
6210 return ensureType(A, *NewV, Ty, CtxI, Check);
6216 Value *manifestReplacementValue(Attributor &A, Instruction *CtxI) const {
6224 if (reproduceValue(A, *this, *NewV, *getAssociatedType(), CtxI,
6226 return reproduceValue(A, *this, *NewV, *getAssociatedType(), CtxI,
6978 Instruction *CtxI = isa<InvokeInst>(AI.CB) ? AI.CB : AI.CB->getNextNode();
6979 if (!Explorer || !Explorer->findInContextOf(UniqueFree, CtxI)) {
9029 const Instruction *CtxI = nullptr) const {
9037 if (!LVI || !CtxI)
9040 const_cast<Instruction *>(CtxI),
9044 /// Return true if \p CtxI is valid for querying outside analyses.
9050 const Instruction *CtxI,
9052 if (!CtxI || (!AllowAACtxI && CtxI == getCtxI()))
9057 if (!AA::isValidInScope(getAssociatedValue(), CtxI->getFunction()))
9068 return DT && DT->dominates(I, CtxI);
9077 const Instruction *CtxI = nullptr) const override {
9078 if (!isValidCtxInstructionForOutsideAnalysis(A, CtxI,
9082 ConstantRange LVIR = getConstantRangeFromLVI(A, CtxI);
9083 ConstantRange SCEVR = getConstantRangeFromSCEV(A, CtxI);
9090 const Instruction *CtxI = nullptr) const override {
9095 if (!isValidCtxInstructionForOutsideAnalysis(A, CtxI,
9099 ConstantRange LVIR = getConstantRangeFromLVI(A, CtxI);
9100 ConstantRange SCEVR = getConstantRangeFromSCEV(A, CtxI);
9272 const Instruction *CtxI,
9307 auto LHSAARange = LHSAA->getAssumedConstantRange(A, CtxI);
9315 auto RHSAARange = RHSAA->getAssumedConstantRange(A, CtxI);
9328 const Instruction *CtxI,
9361 const Instruction *CtxI,
9402 auto LHSAARange = LHSAA->getAssumedConstantRange(A, CtxI);
9403 auto RHSAARange = RHSAA->getAssumedConstantRange(A, CtxI);
9443 auto VisitValueCB = [&](Value &V, const Instruction *CtxI) -> bool {
9463 // Clamp operator is not used to utilize a program point CtxI.
9465 T.unionAssumed(AA->getAssumedConstantRange(A, CtxI));
9474 if (!calculateBinaryOperator(A, BinOp, T, CtxI, QuerriedAAs))
9477 if (!calculateCmpInst(A, CmpI, T, CtxI, QuerriedAAs))
9480 if (!calculateCastInst(A, CastI, T, CtxI, QuerriedAAs))
10229 if (Instruction *CtxI = getCtxI())
10230 followUsesInMBEC(*this, A, getState(), *CtxI);
10335 if (Instruction *CtxI = getCtxI())
10336 followUsesInMBEC(*this, A, getState(), *CtxI);
10384 auto VisitValueCB = [&](Value &V, const Instruction *CtxI) -> bool {
10511 auto VisitValue = [&](Value &V, const Instruction *CtxI) -> bool {
10525 auto ProcessCalledOperand = [&](Value *V, Instruction *CtxI) {
10527 VisitValue(*V, CtxI);
10535 Values.push_back({*V, CtxI});
10799 const Instruction *CtxI, AA::ValueScope S,
10803 if (auto *CB = dyn_cast_or_null<CallBase>(CtxI)) {
10836 CtxI = nullptr;
10840 State.unionAssumed({{*VPtr, CtxI}, S});
11019 /* CtxI */ nullptr, II.S, getAnchorScope());
11029 addValue(A, getState(), *NewV, /* CtxI */ nullptr, II.S,
11039 addValue(A, getState(), *NewV, /* CtxI */ nullptr, II.S,
11072 addValue(A, getState(), *NewV, /* CtxI */ nullptr, II.S,
11086 const Instruction *CtxI = II.I.getCtxI();
11096 Worklist.push_back({{*SI.getFalseValue(), CtxI}, II.S});
11098 Worklist.push_back({{*SI.getTrueValue(), CtxI}, II.S});
11101 Worklist.push_back({{*SI.getTrueValue(), CtxI}, II.S});
11102 Worklist.push_back({{*SI.getFalseValue(), CtxI}, II.S});
11109 addValue(A, getState(), **SimpleV, CtxI, II.S, getAnchorScope());
11159 const Instruction *CtxI = II.I.getCtxI();
11175 Worklist.push_back({{*PotentialCopy, CtxI}, II.S});
11177 Worklist.push_back({{*PotentialCopy, CtxI}, AA::Interprocedural});
11181 addValue(A, getState(), LI, CtxI, AA::Intraprocedural, getAnchorScope());
11323 const Instruction *CtxI = II.I.getCtxI();
11335 addValue(A, getState(), *V, CtxI, S, getAnchorScope());
11356 Worklist.push_back({{*NewV, CtxI}, S});
11370 if (V == InitialV && CtxI == getCtxI()) {
11375 addValue(A, getState(), *V, CtxI, S, getAnchorScope());
11499 auto HandleReturnedValue = [&](Value &V, Instruction *CtxI,
11511 VAC.getCtxI() ? VAC.getCtxI() : CtxI, S, AnchorScope);
11541 const Instruction *CtxI, AA::ValueScope S,
11547 Base::addValue(A, State, V, CtxI, S, AnchorScope);