Lines Matching defs:LVILatticeVal

50 //                               LVILatticeVal
53 /// LVILatticeVal - This is the information tracked by LazyValueInfo for each
60 class LVILatticeVal {
85 LVILatticeVal() : Tag(undefined), Val(0), Range(1, true) {}
87 static LVILatticeVal get(Constant *C) {
88 LVILatticeVal Res;
93 static LVILatticeVal getNot(Constant *C) {
94 LVILatticeVal Res;
99 static LVILatticeVal getRange(ConstantRange CR) {
100 LVILatticeVal Res;
191 bool mergeIn(const LVILatticeVal &RHS) {
275 raw_ostream &operator<<(raw_ostream &OS, const LVILatticeVal &Val)
277 raw_ostream &operator<<(raw_ostream &OS, const LVILatticeVal &Val) {
320 typedef std::map<AssertingVH<BasicBlock>, LVILatticeVal> ValueCacheEntryTy;
349 LVILatticeVal &BBLV;
351 OverDefinedCacheUpdater(Value *V, BasicBlock *B, LVILatticeVal &LV,
364 LVILatticeVal getBlockValue(Value *Val, BasicBlock *BB);
366 LVILatticeVal &Result);
373 bool solveBlockValueNonLocal(LVILatticeVal &BBLV,
375 bool solveBlockValuePHINode(LVILatticeVal &BBLV,
377 bool solveBlockValueConstantRange(LVILatticeVal &BBLV,
389 LVILatticeVal getValueInBlock(Value *V, BasicBlock *BB);
393 LVILatticeVal getValueOnEdge(Value *V, BasicBlock *FromBB,BasicBlock *ToBB);
479 LVILatticeVal LazyValueInfoCache::getBlockValue(Value *Val, BasicBlock *BB) {
482 return LVILatticeVal::get(VC);
494 LVILatticeVal &BBLV = Cache[BB];
528 BBLV = LVILatticeVal::getNot(ConstantPointerNull::get(AI->getType()));
534 LVILatticeVal Result;
586 bool LazyValueInfoCache::solveBlockValueNonLocal(LVILatticeVal &BBLV,
588 LVILatticeVal Result; // Start Undefined.
612 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy));
624 LVILatticeVal EdgeResult;
640 Result = LVILatticeVal::getNot(ConstantPointerNull::get(PTy));
656 bool LazyValueInfoCache::solveBlockValuePHINode(LVILatticeVal &BBLV,
658 LVILatticeVal Result; // Start Undefined.
666 LVILatticeVal EdgeResult;
692 bool LazyValueInfoCache::solveBlockValueConstantRange(LVILatticeVal &BBLV,
701 LVILatticeVal LHSVal = getBlockValue(BBI->getOperand(0), BB);
722 LVILatticeVal Result;
776 BasicBlock *BBTo, LVILatticeVal &Result) {
791 Result = LVILatticeVal::get(ConstantInt::get(
804 Result = LVILatticeVal::get(cast<Constant>(ICI->getOperand(1)));
806 Result = LVILatticeVal::getNot(cast<Constant>(ICI->getOperand(1)));
830 Result = LVILatticeVal::getRange(TrueValues);
858 Result = LVILatticeVal::getRange(EdgesVals);
867 BasicBlock *BBTo, LVILatticeVal &Result) {
870 Result = LVILatticeVal::get(VC);
888 LVILatticeVal InBlock = getBlockValue(Val, BBFrom);
894 Result = LVILatticeVal::getRange(Range);
908 LVILatticeVal LazyValueInfoCache::getValueInBlock(Value *V, BasicBlock *BB) {
914 LVILatticeVal Result = getBlockValue(V, BB);
920 LVILatticeVal LazyValueInfoCache::
925 LVILatticeVal Result;
1033 LVILatticeVal Result = getCache(PImpl).getValueInBlock(V, BB);
1049 LVILatticeVal Result = getCache(PImpl).getValueOnEdge(V, FromBB, ToBB);
1067 LVILatticeVal Result = getCache(PImpl).getValueOnEdge(V, FromBB, ToBB);