Returns true if the loop contains read‐only memory accesses and doesn't throw. Puts loads that may fault into NonDereferenceableAndAlignedLoads.
Synopsis
Declared in <llvm/Analysis/Loads.h>
bool
isReadOnlyLoop(
Loop* L,
ScalarEvolution* SE,
DominatorTree* DT,
AssumptionCache* AC,
SmallVectorImpl<LoadInst*>& NonDereferenceableAndAlignedLoads,
SmallVectorImpl<SCEVPredicate const*>* Predicates = nullptr);
Return Value
True if the loop is read‐only and does not throw.
Parameters
Name |
Description |
L |
Loop to analyze. |
SE |
Scalar evolution analysis used for dereferenceability proofs. |
DT |
Dominator tree used for context‐sensitive reasoning. |
AC |
Assumption cache used to strengthen proofs. |
NonDereferenceableAndAlignedLoads |
Loads that may fault are appended here. |
Predicates |
Optional vector that collects required SCEV predicates. |
Created with MrDocs