Lines Matching refs:Depth

150                              KnownBits &Known, unsigned Depth,
153 void llvm::computeKnownBits(const Value *V, KnownBits &Known, unsigned Depth, in computeKnownBits() argument
161 ::computeKnownBits(V, DemandedElts, Known, Depth, Q); in computeKnownBits()
165 const DataLayout &DL, unsigned Depth, in computeKnownBits() argument
169 V, Known, Depth, in computeKnownBits()
174 unsigned Depth, AssumptionCache *AC, in computeKnownBits() argument
178 V, Depth, SimplifyQuery(DL, DT, AC, safeCxtI(V, CxtI), UseInstrInfo)); in computeKnownBits()
182 const DataLayout &DL, unsigned Depth, in computeKnownBits() argument
186 V, DemandedElts, Depth, in computeKnownBits()
261 static bool isKnownToBeAPowerOfTwo(const Value *V, bool OrZero, unsigned Depth,
265 bool OrZero, unsigned Depth, in isKnownToBeAPowerOfTwo() argument
269 V, OrZero, Depth, in isKnownToBeAPowerOfTwo()
274 unsigned Depth, const SimplifyQuery &Q);
276 static bool isKnownNonZero(const Value *V, unsigned Depth,
279 bool llvm::isKnownNonZero(const Value *V, const DataLayout &DL, unsigned Depth, in isKnownNonZero() argument
283 V, Depth, SimplifyQuery(DL, DT, AC, safeCxtI(V, CxtI), UseInstrInfo)); in isKnownNonZero()
287 unsigned Depth) { in isKnownNonNegative() argument
288 return computeKnownBits(V, Depth, SQ).isNonNegative(); in isKnownNonNegative()
292 unsigned Depth) { in isKnownPositive() argument
298 return isKnownNonNegative(V, SQ, Depth) && ::isKnownNonZero(V, Depth, SQ); in isKnownPositive()
302 unsigned Depth) { in isKnownNegative() argument
303 return computeKnownBits(V, Depth, SQ).isNegative(); in isKnownNegative()
306 static bool isKnownNonEqual(const Value *V1, const Value *V2, unsigned Depth,
319 const SimplifyQuery &SQ, unsigned Depth) { in MaskedValueIsZero() argument
321 computeKnownBits(V, Known, Depth, SQ); in MaskedValueIsZero()
326 unsigned Depth, const SimplifyQuery &Q);
328 static unsigned ComputeNumSignBits(const Value *V, unsigned Depth, in ComputeNumSignBits() argument
333 return ComputeNumSignBits(V, DemandedElts, Depth, Q); in ComputeNumSignBits()
337 unsigned Depth, AssumptionCache *AC, in ComputeNumSignBits() argument
341 V, Depth, SimplifyQuery(DL, DT, AC, safeCxtI(V, CxtI), UseInstrInfo)); in ComputeNumSignBits()
345 unsigned Depth, AssumptionCache *AC, in ComputeMaxSignificantBits() argument
348 unsigned SignBits = ComputeNumSignBits(V, DL, Depth, AC, CxtI, DT); in ComputeMaxSignificantBits()
355 unsigned Depth, const SimplifyQuery &Q) { in computeKnownBitsAddSub() argument
356 computeKnownBits(Op1, DemandedElts, KnownOut, Depth + 1, Q); in computeKnownBitsAddSub()
363 computeKnownBits(Op0, DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsAddSub()
369 KnownBits &Known2, unsigned Depth, in computeKnownBitsMul() argument
371 computeKnownBits(Op1, DemandedElts, Known, Depth + 1, Q); in computeKnownBitsMul()
372 computeKnownBits(Op0, DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsMul()
402 isGuaranteedNotToBeUndef(Op0, Q.AC, Q.CxtI, Q.DT, Depth + 1); in computeKnownBitsMul()
710 unsigned Depth, const SimplifyQuery &Q) { in computeKnownBitsFromContext() argument
787 if (Depth == MaxAnalysisRecursionDepth) in computeKnownBitsFromContext()
817 KnownBits &Known2, unsigned Depth, const SimplifyQuery &Q, in computeKnownBitsFromShiftOperator() argument
819 computeKnownBits(I->getOperand(0), DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsFromShiftOperator()
820 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromShiftOperator()
826 isKnownNonZero(I->getOperand(1), DemandedElts, Depth + 1, Q)); in computeKnownBitsFromShiftOperator()
833 unsigned Depth, const SimplifyQuery &Q) { in getKnownBitsFromAndXorOr() argument
890 computeKnownBits(Y, DemandedElts, KnownY, Depth + 1, Q); in getKnownBitsFromAndXorOr()
905 unsigned Depth, in analyzeKnownBitsFromAndXorOr() argument
911 return getKnownBitsFromAndXorOr(I, DemandedElts, KnownLHS, KnownRHS, Depth, in analyzeKnownBitsFromAndXorOr()
936 KnownBits &Known, unsigned Depth, in computeKnownBitsFromOperator() argument
949 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
950 computeKnownBits(I->getOperand(0), DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
952 Known = getKnownBitsFromAndXorOr(I, DemandedElts, Known2, Known, Depth, Q); in computeKnownBitsFromOperator()
955 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
956 computeKnownBits(I->getOperand(0), DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
958 Known = getKnownBitsFromAndXorOr(I, DemandedElts, Known2, Known, Depth, Q); in computeKnownBitsFromOperator()
961 computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
962 computeKnownBits(I->getOperand(0), DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
964 Known = getKnownBitsFromAndXorOr(I, DemandedElts, Known2, Known, Depth, Q); in computeKnownBitsFromOperator()
969 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
973 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
974 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
980 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
981 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
987 computeKnownBits(I->getOperand(2), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
988 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1019 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1032 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1072 Depth + 1, Q); in computeKnownBitsFromOperator()
1084 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1097 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1110 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1123 computeKnownBitsFromShiftOperator(I, DemandedElts, Known, Known2, Depth, Q, in computeKnownBitsFromOperator()
1130 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1136 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1140 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1141 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1146 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1147 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1156 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1199 computeKnownBits(Index, IndexBits, Depth + 1, Q); in computeKnownBitsFromOperator()
1265 computeKnownBits(R, DemandedElts, Known2, Depth + 1, RecQ); in computeKnownBitsFromOperator()
1305 computeKnownBits(R, Known2, Depth + 1, RecQ); in computeKnownBitsFromOperator()
1310 computeKnownBits(L, Known3, Depth + 1, RecQ); in computeKnownBitsFromOperator()
1358 if (Depth < MaxAnalysisRecursionDepth - 1 && Known.isUnknown()) { in computeKnownBitsFromOperator()
1436 computeKnownBits(RV, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1444 computeKnownBits(I->getOperand(0), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1450 computeKnownBits(I->getOperand(0), DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1455 computeKnownBits(I->getOperand(0), DemandedElts, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1460 computeKnownBits(I->getOperand(0), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1471 computeKnownBits(I->getOperand(0), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1482 computeKnownBits(I->getOperand(0), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1504 computeKnownBits(I->getOperand(0), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1505 computeKnownBits(I->getOperand(1), Known3, Depth + 1, Q); in computeKnownBitsFromOperator()
1514 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1515 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1519 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1520 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1524 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1525 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1529 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1530 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1534 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1535 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1539 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1540 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1544 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1545 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1549 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1550 computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1554 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1558 computeKnownBits(Mask, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1601 computeKnownBits(LHS, DemandedLHS, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1608 computeKnownBits(RHS, DemandedRHS, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1632 computeKnownBits(Elt, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1641 computeKnownBits(Vec, DemandedVecElts, Known2, Depth + 1, Q); in computeKnownBitsFromOperator()
1661 computeKnownBits(Vec, DemandedVecElts, Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1675 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1681 Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1686 DemandedElts, Known, Known2, Depth, Q); in computeKnownBitsFromOperator()
1694 Depth + 1)) in computeKnownBitsFromOperator()
1695 computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); in computeKnownBitsFromOperator()
1703 unsigned Depth, const SimplifyQuery &Q) { in computeKnownBits() argument
1705 ::computeKnownBits(V, DemandedElts, Known, Depth, Q); in computeKnownBits()
1711 KnownBits llvm::computeKnownBits(const Value *V, unsigned Depth, in computeKnownBits() argument
1714 computeKnownBits(V, Known, Depth, Q); in computeKnownBits()
1734 KnownBits &Known, unsigned Depth, in computeKnownBits() argument
1743 assert(Depth <= MaxAnalysisRecursionDepth && "Limit Search Depth"); in computeKnownBits()
1838 if (Depth == MaxAnalysisRecursionDepth) in computeKnownBits()
1845 computeKnownBits(GA->getAliasee(), Known, Depth + 1, Q); in computeKnownBits()
1850 computeKnownBitsFromOperator(I, DemandedElts, Known, Depth, Q); in computeKnownBits()
1866 computeKnownBitsFromContext(V, Known, Depth, Q); in computeKnownBits()
1874 unsigned Depth, SimplifyQuery &Q) { in isPowerOfTwoRecurrence() argument
1886 if (!isKnownToBeAPowerOfTwo(Start, OrZero, Depth, Q)) in isPowerOfTwoRecurrence()
1902 isKnownToBeAPowerOfTwo(Step, OrZero, Depth, Q); in isPowerOfTwoRecurrence()
1914 isKnownToBeAPowerOfTwo(Step, false, Depth, Q); in isPowerOfTwoRecurrence()
1932 bool isKnownToBeAPowerOfTwo(const Value *V, bool OrZero, unsigned Depth, in isKnownToBeAPowerOfTwo() argument
1934 assert(Depth <= MaxAnalysisRecursionDepth && "Limit Search Depth"); in isKnownToBeAPowerOfTwo()
1964 if (Depth++ == MaxAnalysisRecursionDepth) in isKnownToBeAPowerOfTwo()
1969 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
1971 return OrZero && isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
1974 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
1978 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
1982 return isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
1985 return isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q) && in isKnownToBeAPowerOfTwo()
1986 isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q) && in isKnownToBeAPowerOfTwo()
1987 (OrZero || isKnownNonZero(I, Depth, Q)); in isKnownToBeAPowerOfTwo()
1991 (isKnownToBeAPowerOfTwo(I->getOperand(1), /*OrZero*/ true, Depth, Q) || in isKnownToBeAPowerOfTwo()
1992 isKnownToBeAPowerOfTwo(I->getOperand(0), /*OrZero*/ true, Depth, Q))) in isKnownToBeAPowerOfTwo()
1997 return OrZero || isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownToBeAPowerOfTwo()
2007 isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q)) in isKnownToBeAPowerOfTwo()
2011 isKnownToBeAPowerOfTwo(I->getOperand(0), OrZero, Depth, Q)) in isKnownToBeAPowerOfTwo()
2016 computeKnownBits(I->getOperand(0), LHSBits, Depth, Q); in isKnownToBeAPowerOfTwo()
2019 computeKnownBits(I->getOperand(1), RHSBits, Depth, Q); in isKnownToBeAPowerOfTwo()
2032 return isKnownToBeAPowerOfTwo(I->getOperand(1), OrZero, Depth, Q) && in isKnownToBeAPowerOfTwo()
2033 isKnownToBeAPowerOfTwo(I->getOperand(2), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
2042 if (isPowerOfTwoRecurrence(PN, OrZero, Depth, RecQ)) in isKnownToBeAPowerOfTwo()
2047 unsigned NewDepth = std::max(Depth, MaxAnalysisRecursionDepth - 1); in isKnownToBeAPowerOfTwo()
2067 return isKnownToBeAPowerOfTwo(II->getArgOperand(1), OrZero, Depth, Q) && in isKnownToBeAPowerOfTwo()
2068 isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
2073 return isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
2078 return isKnownToBeAPowerOfTwo(II->getArgOperand(0), OrZero, Depth, Q); in isKnownToBeAPowerOfTwo()
2097 static bool isGEPKnownNonNull(const GEPOperator *GEP, unsigned Depth, in isGEPKnownNonNull() argument
2112 if (isKnownNonZero(GEP->getPointerOperand(), Depth, Q)) in isGEPKnownNonNull()
2148 if (Depth++ >= MaxAnalysisRecursionDepth) in isGEPKnownNonNull()
2151 if (isKnownNonZero(GTI.getOperand(), Depth, Q)) in isGEPKnownNonNull()
2300 static bool isNonZeroAdd(const APInt &DemandedElts, unsigned Depth, in isNonZeroAdd() argument
2303 KnownBits XKnown = computeKnownBits(X, DemandedElts, Depth, Q); in isNonZeroAdd()
2304 KnownBits YKnown = computeKnownBits(Y, DemandedElts, Depth, Q); in isNonZeroAdd()
2309 if (isKnownNonZero(Y, DemandedElts, Depth, Q) || in isNonZeroAdd()
2310 isKnownNonZero(X, DemandedElts, Depth, Q)) in isNonZeroAdd()
2329 isKnownToBeAPowerOfTwo(Y, /*OrZero*/ false, Depth, Q)) in isNonZeroAdd()
2332 isKnownToBeAPowerOfTwo(X, /*OrZero*/ false, Depth, Q)) in isNonZeroAdd()
2339 static bool isNonZeroSub(const APInt &DemandedElts, unsigned Depth, in isNonZeroSub() argument
2344 if (C->isNullValue() && isKnownNonZero(Y, DemandedElts, Depth, Q)) in isNonZeroSub()
2347 return ::isKnownNonEqual(X, Y, Depth, Q); in isNonZeroSub()
2351 unsigned Depth, const SimplifyQuery &Q, in isNonZeroShift() argument
2382 computeKnownBits(I->getOperand(1), DemandedElts, Depth, Q); in isNonZeroShift()
2395 isKnownNonZero(I->getOperand(0), DemandedElts, Depth, Q)) in isNonZeroShift()
2403 unsigned Depth, const SimplifyQuery &Q) { in isKnownNonZeroFromOperator() argument
2411 return isGEPKnownNonNull(cast<GEPOperator>(I), Depth, Q); in isKnownNonZeroFromOperator()
2444 return isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownNonZeroFromOperator()
2453 return isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownNonZeroFromOperator()
2461 return isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownNonZeroFromOperator()
2464 return isNonZeroSub(DemandedElts, Depth, Q, BitWidth, I->getOperand(0), in isKnownNonZeroFromOperator()
2468 return isKnownNonZero(I->getOperand(1), DemandedElts, Depth, Q) || in isKnownNonZeroFromOperator()
2469 isKnownNonZero(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2473 return isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownNonZeroFromOperator()
2479 return isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownNonZeroFromOperator()
2484 computeKnownBits(I->getOperand(0), DemandedElts, Known, Depth, Q); in isKnownNonZeroFromOperator()
2488 return isNonZeroShift(I, DemandedElts, Depth, Q, Known); in isKnownNonZeroFromOperator()
2495 return isKnownNonZero(I->getOperand(0), Depth, Q); in isKnownNonZeroFromOperator()
2500 computeKnownBits(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2504 return isNonZeroShift(I, DemandedElts, Depth, Q, Known); in isKnownNonZeroFromOperator()
2511 return isKnownNonZero(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2515 computeKnownBits(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2522 computeKnownBits(I->getOperand(1), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2541 return isKnownNonZero(I->getOperand(1), DemandedElts, Depth, Q) || in isKnownNonZeroFromOperator()
2542 isKnownNonZero(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2544 return isNonZeroAdd(DemandedElts, Depth, Q, BitWidth, I->getOperand(0), in isKnownNonZeroFromOperator()
2552 return isKnownNonZero(I->getOperand(0), DemandedElts, Depth, Q) && in isKnownNonZeroFromOperator()
2553 isKnownNonZero(I->getOperand(1), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2558 computeKnownBits(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2560 return isKnownNonZero(I->getOperand(1), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2563 computeKnownBits(I->getOperand(1), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2566 isKnownNonZero(I->getOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2587 if (isKnownNonZero(Op, DemandedElts, Depth, Q)) in isKnownNonZeroFromOperator()
2615 unsigned NewDepth = std::max(Depth, MaxAnalysisRecursionDepth - 1); in isKnownNonZeroFromOperator()
2650 return isKnownNonZero(Vec, DemandedVecElts, Depth, Q); in isKnownNonZeroFromOperator()
2655 return isKnownNonZero(I->getOperand(0), Depth, Q) && in isKnownNonZeroFromOperator()
2657 Depth); in isKnownNonZeroFromOperator()
2679 return isKnownNonZero(RP, Depth, Q); in isKnownNonZeroFromOperator()
2681 if (RV->getType() == I->getType() && isKnownNonZero(RV, Depth, Q)) in isKnownNonZeroFromOperator()
2693 return isKnownNonZero(II->getArgOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2695 return isNonZeroSub(DemandedElts, Depth, Q, BitWidth, in isKnownNonZeroFromOperator()
2698 return isNonZeroAdd(DemandedElts, Depth, Q, BitWidth, in isKnownNonZeroFromOperator()
2703 return isKnownNonZero(II->getArgOperand(1), DemandedElts, Depth, Q) || in isKnownNonZeroFromOperator()
2704 isKnownNonZero(II->getArgOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2713 computeKnownBits(II->getArgOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2717 computeKnownBits(II->getArgOperand(1), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2726 return isKnownNonZero(II->getArgOperand(0), DemandedElts, Depth, Q) && in isKnownNonZeroFromOperator()
2727 isKnownNonZero(II->getArgOperand(1), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2729 return computeKnownBits(II->getArgOperand(0), DemandedElts, Depth, Q) in isKnownNonZeroFromOperator()
2732 return computeKnownBits(II->getArgOperand(0), DemandedElts, Depth, Q) in isKnownNonZeroFromOperator()
2738 return isKnownNonZero(II->getArgOperand(0), DemandedElts, Depth, Q); in isKnownNonZeroFromOperator()
2752 computeKnownBits(I, DemandedElts, Known, Depth, Q); in isKnownNonZeroFromOperator()
2762 bool isKnownNonZero(const Value *V, const APInt &DemandedElts, unsigned Depth, in isKnownNonZero() argument
2767 assert(Depth <= MaxAnalysisRecursionDepth && "Limit Search Depth"); in isKnownNonZero()
2831 if (Depth++ >= MaxAnalysisRecursionDepth) in isKnownNonZero()
2848 if (isKnownNonZeroFromOperator(I, DemandedElts, Depth, Q)) in isKnownNonZero()
2858 bool isKnownNonZero(const Value *V, unsigned Depth, const SimplifyQuery &Q) { in isKnownNonZero() argument
2862 return isKnownNonZero(V, DemandedElts, Depth, Q); in isKnownNonZero()
2973 static bool isAddOfNonZero(const Value *V1, const Value *V2, unsigned Depth, in isAddOfNonZero() argument
2985 return isKnownNonZero(Op, Depth + 1, Q); in isAddOfNonZero()
2990 static bool isNonEqualMul(const Value *V1, const Value *V2, unsigned Depth, in isNonEqualMul() argument
2996 !C->isZero() && !C->isOne() && isKnownNonZero(V1, Depth + 1, Q); in isNonEqualMul()
3003 static bool isNonEqualShl(const Value *V1, const Value *V2, unsigned Depth, in isNonEqualShl() argument
3009 !C->isZero() && isKnownNonZero(V1, Depth + 1, Q); in isNonEqualShl()
3015 unsigned Depth, const SimplifyQuery &Q) { in isNonEqualPHIs() argument
3037 if (!isKnownNonEqual(IV1, IV2, Depth + 1, RecQ)) in isNonEqualPHIs()
3044 static bool isNonEqualSelect(const Value *V1, const Value *V2, unsigned Depth, in isNonEqualSelect() argument
3055 Depth + 1, Q) && in isNonEqualSelect()
3057 Depth + 1, Q); in isNonEqualSelect()
3059 return isKnownNonEqual(SI1->getTrueValue(), V2, Depth + 1, Q) && in isNonEqualSelect()
3060 isKnownNonEqual(SI1->getFalseValue(), V2, Depth + 1, Q); in isNonEqualSelect()
3116 static bool isKnownNonEqual(const Value *V1, const Value *V2, unsigned Depth, in isKnownNonEqual() argument
3124 if (Depth >= MaxAnalysisRecursionDepth) in isKnownNonEqual()
3134 return isKnownNonEqual(Values->first, Values->second, Depth + 1, Q); in isKnownNonEqual()
3140 if (isNonEqualPHIs(PN1, PN2, Depth, Q)) in isKnownNonEqual()
3145 if (isAddOfNonZero(V1, V2, Depth, Q) || isAddOfNonZero(V2, V1, Depth, Q)) in isKnownNonEqual()
3148 if (isNonEqualMul(V1, V2, Depth, Q) || isNonEqualMul(V2, V1, Depth, Q)) in isKnownNonEqual()
3151 if (isNonEqualShl(V1, V2, Depth, Q) || isNonEqualShl(V2, V1, Depth, Q)) in isKnownNonEqual()
3157 KnownBits Known1 = computeKnownBits(V1, Depth, Q); in isKnownNonEqual()
3159 KnownBits Known2 = computeKnownBits(V2, Depth, Q); in isKnownNonEqual()
3166 if (isNonEqualSelect(V1, V2, Depth, Q) || isNonEqualSelect(V2, V1, Depth, Q)) in isKnownNonEqual()
3178 return isKnownNonEqual(A, B, Depth + 1, Q); in isKnownNonEqual()
3261 unsigned Depth, const SimplifyQuery &Q);
3264 unsigned Depth, const SimplifyQuery &Q) { in ComputeNumSignBits() argument
3265 unsigned Result = ComputeNumSignBitsImpl(V, DemandedElts, Depth, Q); in ComputeNumSignBits()
3279 unsigned Depth, const SimplifyQuery &Q) { in ComputeNumSignBitsImpl() argument
3282 assert(Depth <= MaxAnalysisRecursionDepth && "Limit Search Depth"); in ComputeNumSignBitsImpl()
3309 if (Depth == MaxAnalysisRecursionDepth) in ComputeNumSignBitsImpl()
3317 return ComputeNumSignBits(U->getOperand(0), Depth + 1, Q) + Tmp; in ComputeNumSignBitsImpl()
3329 unsigned NumBits = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3338 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3369 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3385 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3397 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3399 Tmp2 = ComputeNumSignBits(U->getOperand(1), Depth + 1, Q); in ComputeNumSignBitsImpl()
3415 Tmp = ComputeNumSignBits(U->getOperand(1), Depth + 1, Q); in ComputeNumSignBitsImpl()
3417 Tmp2 = ComputeNumSignBits(U->getOperand(2), Depth + 1, Q); in ComputeNumSignBitsImpl()
3424 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3431 computeKnownBits(U->getOperand(0), Known, Depth + 1, Q); in ComputeNumSignBitsImpl()
3444 Tmp2 = ComputeNumSignBits(U->getOperand(1), Depth + 1, Q); in ComputeNumSignBitsImpl()
3449 Tmp2 = ComputeNumSignBits(U->getOperand(1), Depth + 1, Q); in ComputeNumSignBitsImpl()
3456 computeKnownBits(U->getOperand(1), Known, Depth + 1, Q); in ComputeNumSignBitsImpl()
3473 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3480 unsigned SignBitsOp0 = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3482 unsigned SignBitsOp1 = ComputeNumSignBits(U->getOperand(1), Depth + 1, Q); in ComputeNumSignBitsImpl()
3505 Tmp, ComputeNumSignBits(PN->getIncomingValue(i), Depth + 1, RecQ)); in ComputeNumSignBitsImpl()
3514 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3527 return ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3545 Tmp = ComputeNumSignBits(LHS, DemandedLHS, Depth + 1, Q); in ComputeNumSignBitsImpl()
3553 Tmp2 = ComputeNumSignBits(RHS, DemandedRHS, Depth + 1, Q); in ComputeNumSignBitsImpl()
3568 Tmp = ComputeNumSignBits(U->getOperand(0), Depth + 1, Q); in ComputeNumSignBitsImpl()
3595 computeKnownBits(V, DemandedElts, Known, Depth, Q); in ComputeNumSignBitsImpl()
3715 bool SignBitOnly, unsigned Depth) { in cannotBeOrderedLessThanZeroImpl() argument
3744 if (Depth == MaxAnalysisRecursionDepth) in cannotBeOrderedLessThanZeroImpl()
3765 SignBitOnly, Depth + 1) && in cannotBeOrderedLessThanZeroImpl()
3767 /*SignBitOnly*/ true, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3778 SignBitOnly, Depth + 1) && in cannotBeOrderedLessThanZeroImpl()
3780 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3783 SignBitOnly, Depth + 1) && in cannotBeOrderedLessThanZeroImpl()
3785 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3790 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3796 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3814 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3830 cannotBeOrderedLessThanZeroImpl(V, DL, TLI, false, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3840 SignBitOnly, Depth + 1) || in cannotBeOrderedLessThanZeroImpl()
3842 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3846 SignBitOnly, Depth + 1) && in cannotBeOrderedLessThanZeroImpl()
3848 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3856 Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3885 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
3893 SignBitOnly, Depth + 1); in cannotBeOrderedLessThanZeroImpl()
4296 unsigned Depth, const SimplifyQuery &Q);
4299 FPClassTest InterestedClasses, unsigned Depth, in computeKnownFPClass() argument
4304 computeKnownFPClass(V, DemandedElts, InterestedClasses, Known, Depth, Q); in computeKnownFPClass()
4310 KnownFPClass &Known, unsigned Depth, in computeKnownFPClassForFPTrunc() argument
4318 KnownSrc, Depth + 1, Q); in computeKnownFPClassForFPTrunc()
4333 unsigned Depth, const SimplifyQuery &Q) { in computeKnownFPClass() argument
4342 assert(Depth <= MaxAnalysisRecursionDepth && "Limit Search Depth"); in computeKnownFPClass()
4410 if (Depth == MaxAnalysisRecursionDepth) in computeKnownFPClass()
4417 Known, Depth + 1, Q); in computeKnownFPClass()
4460 Depth + 1, Q); in computeKnownFPClass()
4464 Known2, Depth + 1, Q); in computeKnownFPClass()
4479 InterestedClasses, Known, Depth + 1, Q); in computeKnownFPClass()
4489 Known, Depth + 1, Q); in computeKnownFPClass()
4491 KnownSign, Depth + 1, Q); in computeKnownFPClass()
4509 KnownAddend, Depth + 1, Q); in computeKnownFPClass()
4524 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4555 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4567 KnownLHS, Depth + 1, Q); in computeKnownFPClass()
4569 KnownRHS, Depth + 1, Q); in computeKnownFPClass()
4633 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4691 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4724 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4734 Depth, Q); in computeKnownFPClass()
4758 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4781 ExponentKnownBits, Depth + 1, Q); in computeKnownFPClass()
4798 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4806 KnownSrc, Depth + 1, Q); in computeKnownFPClass()
4832 ExpArg, true, Q.IIQ.UseInstrInfo, Q.AC, Q.CxtI, Q.DT, Depth + 1); in computeKnownFPClass()
4865 Known, Depth + 1, Q); in computeKnownFPClass()
4908 KnownRHS, Depth + 1, Q); in computeKnownFPClass()
4917 KnownLHS, Depth + 1, Q); in computeKnownFPClass()
4968 Depth + 1, Q); in computeKnownFPClass()
4973 Depth + 1, Q); in computeKnownFPClass()
5021 Depth + 1, Q); in computeKnownFPClass()
5033 Depth + 1, Q); in computeKnownFPClass()
5078 Known, Depth + 1, Q); in computeKnownFPClass()
5101 Depth, Q); in computeKnownFPClass()
5147 Depth + 1, Q); in computeKnownFPClass()
5167 computeKnownFPClass(Elt, Known, InterestedClasses, Depth + 1, Q); in computeKnownFPClass()
5181 Depth + 1, Q); in computeKnownFPClass()
5198 Depth + 1, Q); in computeKnownFPClass()
5211 Depth + 1, Q); in computeKnownFPClass()
5230 InterestedClasses, KnownSrc, Depth + 1, Q); in computeKnownFPClass()
5261 computeKnownFPClass(Src, DemandedElts, InterestedClasses, Known, Depth + 1, in computeKnownFPClass()
5275 if (Depth < PhiRecursionLimit) { in computeKnownFPClass()
5315 FPClassTest InterestedClasses, unsigned Depth, const TargetLibraryInfo *TLI, in computeKnownFPClass() argument
5320 V, DemandedElts, InterestedClasses, KnownClasses, Depth, in computeKnownFPClass()
5327 unsigned Depth, const TargetLibraryInfo *TLI, AssumptionCache *AC, in computeKnownFPClass() argument
5331 V, Known, InterestedClasses, Depth, in computeKnownFPClass()
6737 unsigned Depth) { in directlyImpliesPoison() argument
6742 if (Depth >= MaxDepth) in directlyImpliesPoison()
6748 directlyImpliesPoison(ValAssumedPoison, Op, Depth + 1); in directlyImpliesPoison()
6765 unsigned Depth) { in impliesPoison() argument
6773 if (Depth >= MaxDepth) in impliesPoison()
6779 return impliesPoison(Op, V, Depth + 1); in impliesPoison()
6793 const DominatorTree *DT, unsigned Depth, UndefPoisonKind Kind) { in isGuaranteedNotToBeUndefOrPoison() argument
6794 if (Depth >= MaxAnalysisRecursionDepth) in isGuaranteedNotToBeUndefOrPoison()
6838 return isGuaranteedNotToBeUndefOrPoison(V, AC, CtxI, DT, Depth + 1, Kind); in isGuaranteedNotToBeUndefOrPoison()
6860 DT, Depth + 1, Kind)) { in isGuaranteedNotToBeUndefOrPoison()
6932 unsigned Depth) { in isGuaranteedNotToBeUndefOrPoison() argument
6933 return ::isGuaranteedNotToBeUndefOrPoison(V, AC, CtxI, DT, Depth, in isGuaranteedNotToBeUndefOrPoison()
6939 const DominatorTree *DT, unsigned Depth) { in isGuaranteedNotToBePoison() argument
6940 return ::isGuaranteedNotToBeUndefOrPoison(V, AC, CtxI, DT, Depth, in isGuaranteedNotToBePoison()
6946 const DominatorTree *DT, unsigned Depth) { in isGuaranteedNotToBeUndef() argument
6947 return ::isGuaranteedNotToBeUndefOrPoison(V, AC, CtxI, DT, Depth, in isGuaranteedNotToBeUndef()
7449 unsigned Depth) { in matchMinMaxOfMinMax() argument
7454 SelectPatternResult L = matchSelectPattern(TVal, A, B, nullptr, Depth + 1); in matchMinMaxOfMinMax()
7459 SelectPatternResult R = matchSelectPattern(FVal, C, D, nullptr, Depth + 1); in matchMinMaxOfMinMax()
7559 unsigned Depth) { in matchMinMax() argument
7568 SPR = matchMinMaxOfMinMax(Pred, CmpLHS, CmpRHS, TrueVal, FalseVal, Depth); in matchMinMax()
7650 unsigned Depth) { in matchSelectPattern() argument
7824 return matchMinMax(Pred, CmpLHS, CmpRHS, TrueVal, FalseVal, LHS, RHS, Depth); in matchSelectPattern()
7948 unsigned Depth) { in matchSelectPattern() argument
7949 if (Depth >= MaxAnalysisRecursionDepth) in matchSelectPattern()
7962 CastOp, Depth); in matchSelectPattern()
7967 Instruction::CastOps *CastOp, unsigned Depth) { in matchDecomposedSelectPattern() argument
7988 LHS, RHS, Depth); in matchDecomposedSelectPattern()
7997 LHS, RHS, Depth); in matchDecomposedSelectPattern()
8001 LHS, RHS, Depth); in matchDecomposedSelectPattern()
8159 unsigned Depth) { in isTruePredicate() argument
8198 computeKnownBits(X, Known, DL, Depth + 1, /*AC*/ nullptr, in isTruePredicate()
8222 const DataLayout &DL, unsigned Depth) { in isImpliedCondOperands() argument
8229 if (isTruePredicate(CmpInst::ICMP_SLE, BLHS, ALHS, DL, Depth) && in isImpliedCondOperands()
8230 isTruePredicate(CmpInst::ICMP_SLE, ARHS, BRHS, DL, Depth)) in isImpliedCondOperands()
8236 if (isTruePredicate(CmpInst::ICMP_SLE, ALHS, BLHS, DL, Depth) && in isImpliedCondOperands()
8237 isTruePredicate(CmpInst::ICMP_SLE, BRHS, ARHS, DL, Depth)) in isImpliedCondOperands()
8243 if (isTruePredicate(CmpInst::ICMP_ULE, BLHS, ALHS, DL, Depth) && in isImpliedCondOperands()
8244 isTruePredicate(CmpInst::ICMP_ULE, ARHS, BRHS, DL, Depth)) in isImpliedCondOperands()
8250 if (isTruePredicate(CmpInst::ICMP_ULE, ALHS, BLHS, DL, Depth) && in isImpliedCondOperands()
8251 isTruePredicate(CmpInst::ICMP_ULE, BRHS, ARHS, DL, Depth)) in isImpliedCondOperands()
8309 bool LHSIsTrue, unsigned Depth) { in isImpliedCondICmps() argument
8353 return isImpliedCondOperands(LPred, L0, L1, R0, R1, DL, Depth); in isImpliedCondICmps()
8365 const DataLayout &DL, bool LHSIsTrue, unsigned Depth) { in isImpliedCondAndOr() argument
8372 assert(Depth <= MaxAnalysisRecursionDepth && "Hit recursion limit"); in isImpliedCondAndOr()
8382 ALHS, RHSPred, RHSOp0, RHSOp1, DL, LHSIsTrue, Depth + 1)) in isImpliedCondAndOr()
8385 ARHS, RHSPred, RHSOp0, RHSOp1, DL, LHSIsTrue, Depth + 1)) in isImpliedCondAndOr()
8395 const DataLayout &DL, bool LHSIsTrue, unsigned Depth) { in isImpliedCondition() argument
8397 if (Depth == MaxAnalysisRecursionDepth) in isImpliedCondition()
8412 Depth); in isImpliedCondition()
8422 Depth); in isImpliedCondition()
8429 bool LHSIsTrue, unsigned Depth) { in isImpliedCondition() argument
8437 LHSIsTrue, Depth); in isImpliedCondition()
8439 if (Depth == MaxAnalysisRecursionDepth) in isImpliedCondition()
8447 isImpliedCondition(LHS, RHS1, DL, LHSIsTrue, Depth + 1)) in isImpliedCondition()
8451 isImpliedCondition(LHS, RHS2, DL, LHSIsTrue, Depth + 1)) in isImpliedCondition()
8457 isImpliedCondition(LHS, RHS1, DL, LHSIsTrue, Depth + 1)) in isImpliedCondition()
8461 isImpliedCondition(LHS, RHS2, DL, LHSIsTrue, Depth + 1)) in isImpliedCondition()
8879 unsigned Depth) { in computeConstantRange() argument
8882 if (Depth == MaxAnalysisRecursionDepth) in computeConstantRange()
8910 SI->getTrueValue(), ForSigned, UseInstrInfo, AC, CtxI, DT, Depth + 1); in computeConstantRange()
8912 SI->getFalseValue(), ForSigned, UseInstrInfo, AC, CtxI, DT, Depth + 1); in computeConstantRange()
8948 UseInstrInfo, AC, I, DT, Depth + 1); in computeConstantRange()