Lines Matching refs:ConstantRange
74 bool isUnsafe(const ConstantRange &R) { in isUnsafe()
78 ConstantRange addOverflowNever(const ConstantRange &L, const ConstantRange &R) { in addOverflowNever()
82 ConstantRange::OverflowResult::NeverOverflows) in addOverflowNever()
83 return ConstantRange::getFull(L.getBitWidth()); in addOverflowNever()
84 ConstantRange Result = L.add(R); in addOverflowNever()
89 ConstantRange unionNoWrap(const ConstantRange &L, const ConstantRange &R) { in unionNoWrap()
95 Result = ConstantRange::getFull(Result.getBitWidth()); in unionNoWrap()
120 ConstantRange Range;
128 using CallsTy = std::map<CallInfo<CalleeTy>, ConstantRange,
134 void updateRange(const ConstantRange &R) { Range = unionNoWrap(Range, R); } in updateRange()
135 void addRange(const Instruction *I, const ConstantRange &R, bool IsSafe) { in addRange()
154 ConstantRange getStaticAllocaSizeRange(const AllocaInst &AI) { in getStaticAllocaSizeRange()
159 ConstantRange R = ConstantRange::getEmpty(PointerSize); in getStaticAllocaSizeRange()
178 R = ConstantRange(APInt::getZero(PointerSize), APSize); in getStaticAllocaSizeRange()
244 const ConstantRange UnknownRange;
254 ConstantRange offsetFrom(Value *Addr, Value *Base);
255 ConstantRange getAccessRange(Value *Addr, Value *Base,
256 const ConstantRange &SizeRange);
257 ConstantRange getAccessRange(Value *Addr, Value *Base, TypeSize Size);
258 ConstantRange getMemIntrinsicAccessRange(const MemIntrinsic *MI, const Use &U,
293 ConstantRange StackSafetyLocalAnalysis::offsetFrom(Value *Addr, Value *Base) { in offsetFrom()
306 ConstantRange Offset = SE.getSignedRange(Diff); in offsetFrom()
312 ConstantRange
314 const ConstantRange &SizeRange) { in getAccessRange()
317 return ConstantRange::getEmpty(PointerSize); in getAccessRange()
320 ConstantRange Offsets = offsetFrom(Addr, Base); in getAccessRange()
330 ConstantRange StackSafetyLocalAnalysis::getAccessRange(Value *Addr, Value *Base, in getAccessRange()
338 ConstantRange(APInt::getZero(PointerSize), APSize)); in getAccessRange()
341 ConstantRange StackSafetyLocalAnalysis::getMemIntrinsicAccessRange( in getMemIntrinsicAccessRange()
345 return ConstantRange::getEmpty(PointerSize); in getMemIntrinsicAccessRange()
348 return ConstantRange::getEmpty(PointerSize); in getMemIntrinsicAccessRange()
357 ConstantRange Sizes = SE.getSignedRange(Expr); in getMemIntrinsicAccessRange()
361 ConstantRange SizeRange(APInt::getZero(PointerSize), Sizes.getUpper() - 1); in getMemIntrinsicAccessRange()
537 ConstantRange Offsets = offsetFrom(UI, Ptr); in analyzeAllUses()
590 const ConstantRange UnknownRange;
613 UnknownRange(ConstantRange::getFull(PointerBitWidth)) {} in StackSafetyDataFlowAnalysis()
617 ConstantRange getArgumentAccessRange(const CalleeTy *Callee, unsigned ParamNo,
618 const ConstantRange &Offsets) const;
622 ConstantRange StackSafetyDataFlowAnalysis<CalleeTy>::getArgumentAccessRange( in getArgumentAccessRange()
624 const ConstantRange &Offsets) const { in getArgumentAccessRange()
649 ConstantRange CalleeRange = in updateOneUse()
794 const ConstantRange *findParamAccess(const FunctionSummary &FS, in findParamAccess()
806 ConstantRange FullSet(Use.Range.getBitWidth(), true); in resolveAllCalls()
828 const ConstantRange *Found = findParamAccess(*FS, C.first.ParamNo); in resolveAllCalls()
831 ConstantRange Access = Found->sextOrTrunc(Use.Range.getBitWidth()); in resolveAllCalls()
1139 const ConstantRange FullSet(FunctionSummary::ParamAccess::RangeWidth, true); in generateParamAccessSummary()