getStartAndEndForAccess overloads
Synopses
Declared in <llvm/Analysis/LoopAccessAnalysis.h>
Calculate Start and End points of memory access using exact backedge taken count BTC if computable or maximum backedge taken count MaxBTC otherwise.
std::pair<SCEV const*, SCEV const*>
getStartAndEndForAccess(
Loop const* Lp,
SCEV const* PtrExpr,
Type* AccessTy,
SCEV const* BTC,
SCEV const* MaxBTC,
ScalarEvolution* SE,
DenseMap<std::pair<SCEV const*, SCEV const*>, std::pair<SCEV const*, SCEV const*>>* PointerBounds,
DominatorTree* DT,
AssumptionCache* AC,
std::optional<ScalarEvolution::LoopGuards>& LoopGuards);
Overload of getStartAndEndForAccess taking the element size as a SCEV.
std::pair<SCEV const*, SCEV const*>
getStartAndEndForAccess(
Loop const* Lp,
SCEV const* PtrExpr,
SCEV const* EltSizeSCEV,
SCEV const* BTC,
SCEV const* MaxBTC,
ScalarEvolution* SE,
DenseMap<std::pair<SCEV const*, SCEV const*>, std::pair<SCEV const*, SCEV const*>>* PointerBounds,
DominatorTree* DT,
AssumptionCache* AC,
std::optional<ScalarEvolution::LoopGuards>& LoopGuards);
Return Value
The start and end SCEVs of the accessed memory region.
Parameters
Name |
Description |
Lp |
Loop in which the access executes. |
PtrExpr |
SCEV for the pointer being accessed. |
AccessTy |
Type of the memory access. |
BTC |
Exact backedge‐taken count when available. |
MaxBTC |
Maximum backedge‐taken count used as a fallback. |
SE |
ScalarEvolution used to compute start and end expressions. |
PointerBounds |
Optional cache of previously computed bounds. |
DT |
Dominator tree used for context‐sensitive reasoning. |
AC |
Assumption cache used to strengthen proofs. |
LoopGuards |
Cached loop guards used while computing bounds. |
EltSizeSCEV |
SCEV for the access size in bytes. |
Created with MrDocs