Lines Matching refs:CxtI
97 const Instruction *CxtI;
100 Query(AssumptionCache *AC = nullptr, const Instruction *CxtI = nullptr,
102 : AC(AC), CxtI(CxtI), DT(DT) {}
105 : ExclInvs(Q.ExclInvs), AC(Q.AC), CxtI(Q.CxtI), DT(Q.DT) {
113 static const Instruction *safeCxtI(const Value *V, const Instruction *CxtI) {
116 if (CxtI && CxtI->getParent())
117 return CxtI;
120 CxtI = dyn_cast<Instruction>(V);
121 if (CxtI && CxtI->getParent())
122 return CxtI;
133 AssumptionCache *AC, const Instruction *CxtI,
136 Query(AC, safeCxtI(V, CxtI), DT));
145 AssumptionCache *AC, const Instruction *CxtI,
148 Query(AC, safeCxtI(V, CxtI), DT));
156 const Instruction *CxtI,
159 Query(AC, safeCxtI(V, CxtI), DT), DL);
166 AssumptionCache *AC, const Instruction *CxtI,
168 return ::isKnownNonZero(V, DL, Depth, Query(AC, safeCxtI(V, CxtI), DT));
176 const Instruction *CxtI, const DominatorTree *DT) {
178 Query(AC, safeCxtI(V, CxtI), DT));
186 const Instruction *CxtI,
188 return ::ComputeNumSignBits(V, DL, Depth, Query(AC, safeCxtI(V, CxtI), DT));
425 if (Q.DT->dominates(Inv, Q.CxtI)) {
427 } else if (Inv->getParent() == Q.CxtI->getParent()) {
431 std::next(BasicBlock::const_iterator(Q.CxtI)),
436 return !isEphemeralValueOf(Inv, Q.CxtI);
443 if (Inv->getParent() == Q.CxtI->getParent()->getSinglePredecessor()) {
445 } else if (Inv->getParent() == Q.CxtI->getParent()) {
450 if (I == Q.CxtI)
455 std::next(BasicBlock::const_iterator(Q.CxtI)),
460 return !isEphemeralValueOf(Inv, Q.CxtI);
467 const Instruction *CxtI,
470 Query(nullptr, CxtI, DT));
579 if (!Q.DT || !Q.CxtI)
581 Instruction *Cxt = const_cast<Instruction *>(Q.CxtI);
631 if (!Edge.isSingleEdge() || !Q.DT->dominates(Edge, Q.CxtI->getParent()))
665 if (!Edge.isSingleEdge() || !Q.DT->dominates(Edge, Q.CxtI->getParent()))
679 if (!Q.AC || !Q.CxtI)
688 assert(I->getParent()->getParent() == Q.CxtI->getParent()->getParent() &&
2951 const Instruction *CxtI,
2964 computeKnownBits(LHS, LHSKnownZero, LHSKnownOne, DL, /*Depth=*/0, AC, CxtI,
2966 computeKnownBits(RHS, RHSKnownZero, RHSKnownOne, DL, /*Depth=*/0, AC, CxtI,
3001 const Instruction *CxtI,
3005 AC, CxtI, DT);
3009 AC, CxtI, DT);