Lines Matching refs:LVILatticeVal

55 //                               LVILatticeVal
64 class LVILatticeVal {
89 LVILatticeVal() : Tag(undefined), Val(nullptr), Range(1, true) {}
91 static LVILatticeVal get(Constant *C) {
92 LVILatticeVal Res;
97 static LVILatticeVal getNot(Constant *C) {
98 LVILatticeVal Res;
103 static LVILatticeVal getRange(ConstantRange CR) {
104 LVILatticeVal Res;
108 static LVILatticeVal getOverdefined() {
109 LVILatticeVal Res;
200 bool mergeIn(const LVILatticeVal &RHS, const DataLayout &DL) {
280 raw_ostream &operator<<(raw_ostream &OS, const LVILatticeVal &Val)
282 raw_ostream &operator<<(raw_ostream &OS, const LVILatticeVal &Val) {
326 typedef SmallDenseMap<AssertingVH<BasicBlock>, LVILatticeVal, 4>
367 void insertResult(Value *Val, BasicBlock *BB, const LVILatticeVal &Result) {
378 LVILatticeVal getBlockValue(Value *Val, BasicBlock *BB);
380 LVILatticeVal &Result,
388 bool solveBlockValueNonLocal(LVILatticeVal &BBLV,
390 bool solveBlockValuePHINode(LVILatticeVal &BBLV,
392 bool solveBlockValueConstantRange(LVILatticeVal &BBLV,
394 void mergeAssumeBlockValueConstantRange(Value *Val, LVILatticeVal &BBLV,
424 LVILatticeVal getCachedValueInfo(Value *V, BasicBlock *BB) {
426 return LVILatticeVal::getOverdefined();
434 LVILatticeVal getValueInBlock(Value *V, BasicBlock *BB,
440 LVILatticeVal getValueAt(Value *V, Instruction *CxtI);
444 LVILatticeVal getValueOnEdge(Value *V, BasicBlock *FromBB,BasicBlock *ToBB,
528 LVILatticeVal LazyValueInfoCache::getBlockValue(Value *Val, BasicBlock *BB) {
531 return LVILatticeVal::get(VC);
537 static LVILatticeVal getFromRangeMetadata(Instruction *BBI) {
546 return LVILatticeVal::getRange(Result);
553 return LVILatticeVal();
573 LVILatticeVal Res;
593 Res = LVILatticeVal::getNot(ConstantPointerNull::get(PT));
604 LVILatticeVal Result;
663 bool LazyValueInfoCache::solveBlockValueNonLocal(LVILatticeVal &BBLV,
665 LVILatticeVal Result; // Start Undefined.
695 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy));
707 LVILatticeVal EdgeResult;
723 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy));
739 bool LazyValueInfoCache::solveBlockValuePHINode(LVILatticeVal &BBLV,
741 LVILatticeVal Result; // Start Undefined.
749 LVILatticeVal EdgeResult;
779 LVILatticeVal &Result,
786 LVILatticeVal &BBLV,
801 LVILatticeVal Result;
812 bool LazyValueInfoCache::solveBlockValueConstantRange(LVILatticeVal &BBLV,
823 LVILatticeVal LHSVal = getBlockValue(BBI->getOperand(0), BB);
845 LVILatticeVal Result;
897 LVILatticeVal &Result, bool isTrueDest) {
903 Result = LVILatticeVal::get(cast<Constant>(ICI->getOperand(1)));
905 Result = LVILatticeVal::getNot(cast<Constant>(ICI->getOperand(1)));
929 Result = LVILatticeVal::getRange(TrueValues);
940 BasicBlock *BBTo, LVILatticeVal &Result) {
955 Result = LVILatticeVal::get(ConstantInt::get(
988 Result = LVILatticeVal::getRange(EdgesVals);
997 BasicBlock *BBTo, LVILatticeVal &Result,
1001 Result = LVILatticeVal::get(VC);
1021 LVILatticeVal InBlock = getBlockValue(Val, BBFrom);
1031 Result = LVILatticeVal::getRange(Range);
1057 LVILatticeVal LazyValueInfoCache::getValueInBlock(Value *V, BasicBlock *BB,
1066 LVILatticeVal Result = getBlockValue(V, BB);
1073 LVILatticeVal LazyValueInfoCache::getValueAt(Value *V, Instruction *CxtI) {
1077 LVILatticeVal Result;
1086 LVILatticeVal LazyValueInfoCache::
1092 LVILatticeVal Result;
1209 LVILatticeVal Result =
1228 LVILatticeVal Result =
1242 LVILatticeVal &Result,
1316 LVILatticeVal Result =
1326 LVILatticeVal Result = getCache(PImpl, AC, &DL, DT).getValueAt(V, CxtI);