LLVM: llvm::ScalarEvolution::ExitLimit Struct Reference (original) (raw)
Information about the number of loop iterations for which a loop exit's branch condition evaluates to the not-taken path. More...
#include "[llvm/Analysis/ScalarEvolution.h](ScalarEvolution%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| LLVM_ABI | ExitLimit (const SCEV *E) |
| Construct either an exact exit limit from a constant, or an unknown one from a SCEVCouldNotCompute. | |
| LLVM_ABI | ExitLimit (const SCEV *E, const SCEV *ConstantMaxNotTaken, const SCEV *SymbolicMaxNotTaken, bool MaxOrZero, ArrayRef< ArrayRef< const SCEVPredicate * > > PredLists={}) |
| LLVM_ABI | ExitLimit (const SCEV *E, const SCEV *ConstantMaxNotTaken, const SCEV *SymbolicMaxNotTaken, bool MaxOrZero, ArrayRef< const SCEVPredicate * > PredList) |
| bool | hasAnyInfo () const |
| Test whether this ExitLimit contains any computed information, or whether it's all SCEVCouldNotCompute values. | |
| bool | hasFullInfo () const |
| Test whether this ExitLimit contains all information. |
| Public Attributes | |
|---|---|
| const SCEV * | ExactNotTaken |
| const SCEV * | ConstantMaxNotTaken |
| const SCEV * | SymbolicMaxNotTaken |
| bool | MaxOrZero = false |
| SmallVector< const SCEVPredicate *, 4 > | Predicates |
| A vector of predicate guards for this ExitLimit. |
Information about the number of loop iterations for which a loop exit's branch condition evaluates to the not-taken path.
This is a temporary pair of exact and max expressions that are eventually summarized in ExitNotTakenInfo and BackedgeTakenInfo.
Definition at line 1167 of file ScalarEvolution.h.
| ScalarEvolution::ExitLimit::ExitLimit | ( | const SCEV * | E | ) |
|---|
◆ ExitLimit() [2/3]
◆ ExitLimit() [3/3]
◆ hasAnyInfo()
| bool llvm::ScalarEvolution::ExitLimit::hasAnyInfo ( ) const | inline |
|---|
◆ hasFullInfo()
| bool llvm::ScalarEvolution::ExitLimit::hasFullInfo ( ) const | inline |
|---|
◆ ConstantMaxNotTaken
const SCEV* llvm::ScalarEvolution::ExitLimit::ConstantMaxNotTaken
◆ ExactNotTaken
const SCEV* llvm::ScalarEvolution::ExitLimit::ExactNotTaken
◆ MaxOrZero
bool llvm::ScalarEvolution::ExitLimit::MaxOrZero = false
◆ Predicates
A vector of predicate guards for this ExitLimit.
The result is only valid if all of the predicates in Predicates evaluate to 'true' at run-time.
Definition at line 1179 of file ScalarEvolution.h.
Referenced by ExitLimit().
◆ SymbolicMaxNotTaken
const SCEV* llvm::ScalarEvolution::ExitLimit::SymbolicMaxNotTaken
The documentation for this struct was generated from the following files:
- include/llvm/Analysis/ScalarEvolution.h
- lib/Analysis/ScalarEvolution.cpp