Lines Matching refs:LVILatticeVal
65 class LVILatticeVal { class
95 LVILatticeVal() : Tag(undefined), Val(nullptr), Range(1, true) {} in LVILatticeVal() function in __anon5917926d0111::LVILatticeVal
97 static LVILatticeVal get(Constant *C) { in get()
98 LVILatticeVal Res; in get()
103 static LVILatticeVal getNot(Constant *C) { in getNot()
104 LVILatticeVal Res; in getNot()
109 static LVILatticeVal getRange(ConstantRange CR) { in getRange()
110 LVILatticeVal Res; in getRange()
114 static LVILatticeVal getOverdefined() { in getOverdefined()
115 LVILatticeVal Res; in getOverdefined()
206 bool mergeIn(const LVILatticeVal &RHS, const DataLayout &DL) { in mergeIn()
281 raw_ostream &operator<<(raw_ostream &OS, const LVILatticeVal &Val)
283 raw_ostream &operator<<(raw_ostream &OS, const LVILatticeVal &Val) { in operator <<()
301 static bool hasSingleValue(const LVILatticeVal &Val) { in hasSingleValue()
326 static LVILatticeVal intersect(LVILatticeVal A, LVILatticeVal B) { in intersect()
358 return LVILatticeVal::getRange(std::move(Range)); in intersect()
390 typedef SmallDenseMap<AssertingVH<BasicBlock>, LVILatticeVal, 4>
433 void insertResult(Value *Val, BasicBlock *BB, const LVILatticeVal &Result) { in insertResult()
444 LVILatticeVal getBlockValue(Value *Val, BasicBlock *BB);
446 LVILatticeVal &Result, Instruction *CxtI = nullptr);
453 bool solveBlockValueNonLocal(LVILatticeVal &BBLV, Value *Val, BasicBlock *BB);
454 bool solveBlockValuePHINode(LVILatticeVal &BBLV, PHINode *PN, BasicBlock *BB);
455 bool solveBlockValueSelect(LVILatticeVal &BBLV, SelectInst *S,
457 bool solveBlockValueBinaryOp(LVILatticeVal &BBLV, Instruction *BBI,
459 bool solveBlockValueCast(LVILatticeVal &BBLV, Instruction *BBI,
461 void intersectAssumeBlockValueConstantRange(Value *Val, LVILatticeVal &BBLV,
491 LVILatticeVal getCachedValueInfo(Value *V, BasicBlock *BB) { in getCachedValueInfo()
493 return LVILatticeVal::getOverdefined(); in getCachedValueInfo()
501 LVILatticeVal getValueInBlock(Value *V, BasicBlock *BB,
507 LVILatticeVal getValueAt(Value *V, Instruction *CxtI);
511 LVILatticeVal getValueOnEdge(Value *V, BasicBlock *FromBB,BasicBlock *ToBB,
598 LVILatticeVal LazyValueInfoCache::getBlockValue(Value *Val, BasicBlock *BB) { in getBlockValue()
601 return LVILatticeVal::get(VC); in getBlockValue()
607 static LVILatticeVal getFromRangeMetadata(Instruction *BBI) { in getFromRangeMetadata()
615 return LVILatticeVal::getRange(getConstantRangeFromMetadata(*Ranges)); in getFromRangeMetadata()
620 return LVILatticeVal::getOverdefined(); in getFromRangeMetadata()
640 LVILatticeVal Res; in solveBlockValue()
675 Res = LVILatticeVal::getNot(ConstantPointerNull::get(PT)); in solveBlockValue()
751 bool LazyValueInfoCache::solveBlockValueNonLocal(LVILatticeVal &BBLV, in solveBlockValueNonLocal()
753 LVILatticeVal Result; // Start Undefined. in solveBlockValueNonLocal()
764 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy)); in solveBlockValueNonLocal()
776 LVILatticeVal EdgeResult; in solveBlockValueNonLocal()
793 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy)); in solveBlockValueNonLocal()
809 bool LazyValueInfoCache::solveBlockValuePHINode(LVILatticeVal &BBLV, in solveBlockValuePHINode()
811 LVILatticeVal Result; // Start Undefined. in solveBlockValuePHINode()
819 LVILatticeVal EdgeResult; in solveBlockValuePHINode()
849 LVILatticeVal &Result,
855 LVILatticeVal &BBLV, in intersectAssumeBlockValueConstantRange()
870 LVILatticeVal Result; in intersectAssumeBlockValueConstantRange()
877 bool LazyValueInfoCache::solveBlockValueSelect(LVILatticeVal &BBLV, in solveBlockValueSelect()
887 LVILatticeVal TrueVal = getBlockValue(SI->getTrueValue(), BB); in solveBlockValueSelect()
901 LVILatticeVal FalseVal = getBlockValue(SI->getFalseValue(), BB); in solveBlockValueSelect()
944 LVILatticeVal TrueValTaken, FalseValTaken; in solveBlockValueSelect()
982 LVILatticeVal::getNot(ResNot)); in solveBlockValueSelect()
990 LVILatticeVal::getNot(ResNot)); in solveBlockValueSelect()
997 LVILatticeVal Result; // Start Undefined. in solveBlockValueSelect()
1004 bool LazyValueInfoCache::solveBlockValueCast(LVILatticeVal &BBLV, in solveBlockValueCast()
1043 LVILatticeVal LHSVal = getBlockValue(BBI->getOperand(0), BB); in solveBlockValueCast()
1055 LVILatticeVal Result; in solveBlockValueCast()
1079 bool LazyValueInfoCache::solveBlockValueBinaryOp(LVILatticeVal &BBLV, in solveBlockValueBinaryOp()
1120 LVILatticeVal LHSVal = getBlockValue(BBI->getOperand(0), BB); in solveBlockValueBinaryOp()
1132 LVILatticeVal Result; in solveBlockValueBinaryOp()
1169 LVILatticeVal &Result, bool isTrueDest) { in getValueFromFromCondition()
1176 Result = LVILatticeVal::get(cast<Constant>(ICI->getOperand(1))); in getValueFromFromCondition()
1178 Result = LVILatticeVal::getNot(cast<Constant>(ICI->getOperand(1))); in getValueFromFromCondition()
1202 Result = LVILatticeVal::getRange(std::move(TrueValues)); in getValueFromFromCondition()
1214 BasicBlock *BBTo, LVILatticeVal &Result) { in getEdgeValueLocal()
1229 Result = LVILatticeVal::get(ConstantInt::get( in getEdgeValueLocal()
1262 Result = LVILatticeVal::getRange(std::move(EdgesVals)); in getEdgeValueLocal()
1271 BasicBlock *BBTo, LVILatticeVal &Result, in getEdgeValue()
1275 Result = LVILatticeVal::get(VC); in getEdgeValue()
1279 LVILatticeVal LocalResult; in getEdgeValue()
1300 LVILatticeVal InBlock = getBlockValue(Val, BBFrom); in getEdgeValue()
1316 LVILatticeVal LazyValueInfoCache::getValueInBlock(Value *V, BasicBlock *BB, in getValueInBlock()
1326 LVILatticeVal Result = getBlockValue(V, BB); in getValueInBlock()
1333 LVILatticeVal LazyValueInfoCache::getValueAt(Value *V, Instruction *CxtI) { in getValueAt()
1338 return LVILatticeVal::get(C); in getValueAt()
1340 LVILatticeVal Result = LVILatticeVal::getOverdefined(); in getValueAt()
1349 LVILatticeVal LazyValueInfoCache::
1355 LVILatticeVal Result; in getValueOnEdge()
1485 LVILatticeVal Result = in getConstant()
1503 LVILatticeVal Result = in getConstantRange()
1519 LVILatticeVal Result = in getConstantOnEdge()
1533 LVILatticeVal &Result, in getPredicateResult()
1607 LVILatticeVal Result = in getPredicateOnEdge()
1617 LVILatticeVal Result = getCache(PImpl, AC, &DL, DT).getValueAt(V, CxtI); in getPredicateAt()