16 #ifndef LLVM_ANALYSIS_LOOPUNROLLANALYZER_H
17 #define LLVM_ANALYSIS_LOOPUNROLLANALYZER_H
43 struct SimplifiedAddress {
52 : SimplifiedValues(SimplifiedValues), SE(SE), L(L) {
70 const SCEV *IterationNumber;
87 bool visitInstruction(
Instruction &
I) {
return simplifyInstWithSCEV(&I); }
88 bool visitBinaryOperator(BinaryOperator &
I);
89 bool visitLoad(LoadInst &
I);
90 bool visitCastInst(CastInst &
I);
91 bool visitCmpInst(CmpInst &
I);
92 bool visitPHINode(PHINode &PN);
Base class for instruction visitors.
const SCEV * getConstant(ConstantInt *V)
The main scalar evolution driver.
void visit(Iterator Start, Iterator End)
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.
UnrolledInstAnalyzer(unsigned Iteration, DenseMap< Value *, Constant * > &SimplifiedValues, ScalarEvolution &SE, const Loop *L)
LLVM Value Representation.