Lines Matching refs:BBI
423 solveBlockValueBinaryOp(BinaryOperator *BBI, BasicBlock *BB);
437 Instruction *BBI);
593 static ValueLatticeElement getFromRangeMetadata(Instruction *BBI) { in getFromRangeMetadata() argument
594 switch (BBI->getOpcode()) { in getFromRangeMetadata()
599 if (std::optional<ConstantRange> Range = cast<CallBase>(BBI)->getRange()) in getFromRangeMetadata()
603 if (MDNode *Ranges = BBI->getMetadata(LLVMContext::MD_range)) in getFromRangeMetadata()
604 if (isa<IntegerType>(BBI->getType())) { in getFromRangeMetadata()
632 Instruction *BBI = dyn_cast<Instruction>(Val); in solveBlockValueImpl() local
633 if (!BBI || BBI->getParent() != BB) in solveBlockValueImpl()
636 if (PHINode *PN = dyn_cast<PHINode>(BBI)) in solveBlockValueImpl()
639 if (auto *SI = dyn_cast<SelectInst>(BBI)) in solveBlockValueImpl()
651 PointerType *PT = dyn_cast<PointerType>(BBI->getType()); in solveBlockValueImpl()
652 if (PT && isKnownNonZero(BBI, DL)) in solveBlockValueImpl()
655 if (BBI->getType()->isIntOrIntVectorTy()) { in solveBlockValueImpl()
656 if (auto *CI = dyn_cast<CastInst>(BBI)) in solveBlockValueImpl()
659 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(BBI)) in solveBlockValueImpl()
662 if (auto *IEI = dyn_cast<InsertElementInst>(BBI)) in solveBlockValueImpl()
665 if (auto *EVI = dyn_cast<ExtractValueInst>(BBI)) in solveBlockValueImpl()
668 if (auto *II = dyn_cast<IntrinsicInst>(BBI)) in solveBlockValueImpl()
674 return getFromRangeMetadata(BBI); in solveBlockValueImpl()
799 Value *Val, ValueLatticeElement &BBLV, Instruction *BBI) { in intersectAssumeOrGuardBlockValueConstantRange() argument
800 BBI = BBI ? BBI : dyn_cast<Instruction>(Val); in intersectAssumeOrGuardBlockValueConstantRange()
801 if (!BBI) in intersectAssumeOrGuardBlockValueConstantRange()
804 BasicBlock *BB = BBI->getParent(); in intersectAssumeOrGuardBlockValueConstantRange()
813 if (I->getParent() != BB || !isValidAssumeForContext(I, BBI)) in intersectAssumeOrGuardBlockValueConstantRange()
823 BBI->getIterator() != BB->begin()) { in intersectAssumeOrGuardBlockValueConstantRange()
825 make_range(std::next(BBI->getIterator().getReverse()), BB->rend())) { in intersectAssumeOrGuardBlockValueConstantRange()
838 if (PTy && BB->getTerminator() == BBI && in intersectAssumeOrGuardBlockValueConstantRange()