Lines Matching refs:Result
67 /// This Value has no known value yet. As a result, this implies the
433 void insertResult(Value *Val, BasicBlock *BB, const LVILatticeVal &Result) {
438 if (Result.isOverdefined())
441 lookup(Val)[BB] = Result;
446 LVILatticeVal &Result, Instruction *CxtI = nullptr);
576 "Result should be in cache!");
753 LVILatticeVal Result; // Start Undefined.
764 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy));
766 Result.markOverdefined();
768 BBLV = Result;
773 // result.
781 Result.mergeIn(EdgeResult, DL);
785 if (Result.isOverdefined()) {
793 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy));
796 BBLV = Result;
804 assert(!Result.isOverdefined());
805 BBLV = Result;
811 LVILatticeVal Result; // Start Undefined.
814 // result.
827 Result.mergeIn(EdgeResult, DL);
831 if (Result.isOverdefined()) {
835 BBLV = Result;
843 assert(!Result.isOverdefined() && "Possible PHI in entry block?");
844 BBLV = Result;
849 LVILatticeVal &Result,
870 LVILatticeVal Result;
871 if (getValueFromFromCondition(Val, ICI, Result))
872 BBLV = intersect(BBLV, Result);
997 LVILatticeVal Result; // Start Undefined.
998 Result.mergeIn(TrueVal, DL);
999 Result.mergeIn(FalseVal, DL);
1000 BBLV = Result;
1055 LVILatticeVal Result;
1058 Result.markConstantRange(LHSRange.truncate(ResultBitWidth));
1061 Result.markConstantRange(LHSRange.signExtend(ResultBitWidth));
1064 Result.markConstantRange(LHSRange.zeroExtend(ResultBitWidth));
1067 Result.markConstantRange(LHSRange);
1075 BBLV = Result;
1132 LVILatticeVal Result;
1135 Result.markConstantRange(LHSRange.add(RHSRange));
1138 Result.markConstantRange(LHSRange.sub(RHSRange));
1141 Result.markConstantRange(LHSRange.multiply(RHSRange));
1144 Result.markConstantRange(LHSRange.udiv(RHSRange));
1147 Result.markConstantRange(LHSRange.shl(RHSRange));
1150 Result.markConstantRange(LHSRange.lshr(RHSRange));
1153 Result.markConstantRange(LHSRange.binaryAnd(RHSRange));
1156 Result.markConstantRange(LHSRange.binaryOr(RHSRange));
1164 BBLV = Result;
1169 LVILatticeVal &Result, bool isTrueDest) {
1176 Result = LVILatticeVal::get(cast<Constant>(ICI->getOperand(1)));
1178 Result = LVILatticeVal::getNot(cast<Constant>(ICI->getOperand(1)));
1202 Result = LVILatticeVal::getRange(std::move(TrueValues));
1211 /// Val is not constrained on the edge. Result is unspecified if return value
1214 BasicBlock *BBTo, LVILatticeVal &Result) {
1229 Result = LVILatticeVal::get(ConstantInt::get(
1237 if (getValueFromFromCondition(Val, ICI, Result, isTrueDest))
1262 Result = LVILatticeVal::getRange(std::move(EdgesVals));
1271 BasicBlock *BBTo, LVILatticeVal &Result,
1275 Result = LVILatticeVal::get(VC);
1287 Result = LocalResult;
1295 Result = LocalResult;
1303 // the calling pass is trying to simplify) here, even though the result of
1305 // (and that cached result might be used with queries using a different
1309 // but then the result is not cached.
1312 Result = intersect(LocalResult, InBlock);
1326 LVILatticeVal Result = getBlockValue(V, BB);
1327 intersectAssumeBlockValueConstantRange(V, Result, CxtI);
1329 DEBUG(dbgs() << " Result = " << Result << "\n");
1330 return Result;
1340 LVILatticeVal Result = LVILatticeVal::getOverdefined();
1342 Result = getFromRangeMetadata(I);
1343 intersectAssumeBlockValueConstantRange(V, Result, CxtI);
1345 DEBUG(dbgs() << " Result = " << Result << "\n");
1346 return Result;
1355 LVILatticeVal Result;
1356 if (!getEdgeValue(V, FromBB, ToBB, Result, CxtI)) {
1358 bool WasFastQuery = getEdgeValue(V, FromBB, ToBB, Result, CxtI);
1363 DEBUG(dbgs() << " Result = " << Result << "\n");
1364 return Result;
1485 LVILatticeVal Result =
1488 if (Result.isConstant())
1489 return Result.getConstant();
1490 if (Result.isConstantRange()) {
1491 ConstantRange CR = Result.getConstantRange();
1503 LVILatticeVal Result =
1505 assert(!Result.isConstant());
1506 if (Result.isUndefined())
1508 if (Result.isConstantRange())
1509 return Result.getConstantRange();
1519 LVILatticeVal Result =
1522 if (Result.isConstant())
1523 return Result.getConstant();
1524 if (Result.isConstantRange()) {
1525 ConstantRange CR = Result.getConstantRange();
1533 LVILatticeVal &Result,
1539 if (Result.isConstant()) {
1540 Res = ConstantFoldCompareInstOperands(Pred, Result.getConstant(), C, DL,
1547 if (Result.isConstantRange()) {
1551 ConstantRange CR = Result.getConstantRange();
1576 if (Result.isNotConstant()) {
1582 Result.getNotConstant(), C, DL,
1589 Result.getNotConstant(), C, DL,
1607 LVILatticeVal Result =
1610 return getPredicateResult(Pred, C, Result, DL, TLI);
1617 LVILatticeVal Result = getCache(PImpl, AC, &DL, DT).getValueAt(V, CxtI);
1618 Tristate Ret = getPredicateResult(Pred, C, Result, DL, TLI);
1625 // weren't able to prove about the merged result, and we're pushing that
1664 Tristate Result = getPredicateOnEdge(Pred, Incoming, C, PredBB, BB,
1667 // Keep going as long as we've seen a consistent known result for
1669 Baseline = (i == 0) ? Result /* First iteration */
1670 : (Baseline == Result ? Baseline : Unknown); /* All others */