16 #ifndef LLVM_ANALYSIS_LOOPUNROLLANALYZER_H 17 #define LLVM_ANALYSIS_LOOPUNROLLANALYZER_H 43 struct SimplifiedAddress {
44 Value *Base =
nullptr;
52 : SimplifiedValues(SimplifiedValues), SE(SE), L(L) {
70 const SCEV *IterationNumber;
87 bool visitInstruction(
Instruction &I) {
return simplifyInstWithSCEV(&I); }
This class is the base class for the comparison instructions.
Base class for instruction visitors.
const SCEV * getConstant(ConstantInt *V)
This class represents lattice values for constants.
The main scalar evolution driver.
An instruction for reading from memory.
This is the base class for all instructions that perform data casts.
void visit(Iterator Start, Iterator End)
UnrolledInstAnalyzer(unsigned Iteration, DenseMap< Value *, Constant *> &SimplifiedValues, ScalarEvolution &SE, const Loop *L)
This is the shared class of boolean and integer constants.
Class for arbitrary precision integers.
This class represents an analyzed expression in the program.
Represents a single loop in the control flow graph.
LLVM Value Representation.