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