LLVM API Documentation
#include <ScalarEvolution.h>
Public Member Functions | |
| SCEV (unsigned SCEVTy) | |
| unsigned | getSCEVType () const |
| virtual bool | isLoopInvariant (const Loop *L) const =0 |
| virtual bool | hasComputableLoopEvolution (const Loop *L) const =0 |
| virtual const Type * | getType () const =0 |
| uint32_t | getBitWidth () const |
| bool | isZero () const |
| virtual SCEVHandle | replaceSymbolicValuesWithConcrete (const SCEVHandle &Sym, const SCEVHandle &Conc, ScalarEvolution &SE) const =0 |
| virtual void | print (std::ostream &OS) const =0 |
| void | print (std::ostream *OS) const |
| void | dump () const |
Protected Member Functions | |
| virtual | ~SCEV () |
Friends | |
| class | SCEVHandle |
Definition at line 42 of file ScalarEvolution.h.
| SCEV::~SCEV | ( | ) | [protected, virtual] |
Definition at line 112 of file ScalarEvolution.cpp.
| llvm::SCEV::SCEV | ( | unsigned | SCEVTy | ) | [inline, explicit] |
Definition at line 58 of file ScalarEvolution.h.
| unsigned llvm::SCEV::getSCEVType | ( | ) | const [inline] |
Definition at line 60 of file ScalarEvolution.h.
Referenced by llvm::SCEVUnknown::classof(), llvm::SCEVUMaxExpr::classof(), llvm::SCEVSMaxExpr::classof(), llvm::SCEVAddRecExpr::classof(), llvm::SCEVUDivExpr::classof(), llvm::SCEVMulExpr::classof(), llvm::SCEVAddExpr::classof(), llvm::SCEVCommutativeExpr::classof(), llvm::SCEVSignExtendExpr::classof(), llvm::SCEVZeroExtendExpr::classof(), llvm::SCEVTruncateExpr::classof(), llvm::SCEVConstant::classof(), llvm::SCEVCouldNotCompute::classof(), GroupByComplexity(), llvm::SCEVVisitor< llvm::SCEVExpander, llvm::Value * >::visit(), and llvm::SCEVCommutativeExpr::~SCEVCommutativeExpr().
| virtual bool llvm::SCEV::isLoopInvariant | ( | const Loop * | L | ) | const [pure virtual] |
isLoopInvariant - Return true if the value of this SCEV is unchanging in the specified loop.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| virtual bool llvm::SCEV::hasComputableLoopEvolution | ( | const Loop * | L | ) | const [pure virtual] |
hasComputableLoopEvolution - Return true if this SCEV changes value in a known way in the specified loop. This property being true implies that the value is variant in the loop AND that we can emit an expression to compute the value of the expression at any particular loop iteration.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| virtual const Type* llvm::SCEV::getType | ( | ) | const [pure virtual] |
getType - Return the LLVM type of this SCEV expression.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
Referenced by getBitWidth().
| uint32_t SCEV::getBitWidth | ( | ) | const |
getBitWidth - Get the bit width of the type, if it has one, 0 otherwise.
Definition at line 118 of file ScalarEvolution.cpp.
References getType().
Referenced by llvm::SCEVAddRecExpr::getNumIterationsInRange().
| bool SCEV::isZero | ( | ) | const |
isZero - Return true if the expression is a constant zero.
Definition at line 124 of file ScalarEvolution.cpp.
| virtual SCEVHandle llvm::SCEV::replaceSymbolicValuesWithConcrete | ( | const SCEVHandle & | Sym, | |
| const SCEVHandle & | Conc, | |||
| ScalarEvolution & | SE | |||
| ) | const [pure virtual] |
replaceSymbolicValuesWithConcrete - If this SCEV internally references the symbolic value "Sym", construct and return a new SCEV that produces the same value, but which uses the concrete value Conc instead of the symbolic value. If this SCEV does not use the symbolic value, it returns itself.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| virtual void llvm::SCEV::print | ( | std::ostream & | OS | ) | const [pure virtual] |
print - Print out the internal representation of this scalar to the specified stream. This should really only be used for debugging purposes.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
Referenced by dump(), llvm::operator<<(), and print().
| void llvm::SCEV::print | ( | std::ostream * | OS | ) | const [inline] |
Reimplemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
Definition at line 98 of file ScalarEvolution.h.
References print().
| void SCEV::dump | ( | ) | const |
dump - This method is used for debugging.
Definition at line 113 of file ScalarEvolution.cpp.
References llvm::cerr(), and print().
friend class SCEVHandle [friend] |
Definition at line 46 of file ScalarEvolution.h.