LLVM API Documentation
#include <ScalarEvolution.h>
Inheritance diagram for llvm::SCEV:


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.
|
|
Definition at line 115 of file ScalarEvolution.cpp. |
|
|
Definition at line 58 of file ScalarEvolution.h. |
|
|
dump - This method is used for debugging. Definition at line 116 of file ScalarEvolution.cpp. References print(). |
|
|
getBitWidth - Get the bit width of the type, if it has one, 0 otherwise. Definition at line 120 of file ScalarEvolution.cpp. References llvm::IntegerType::getBitWidth(), and getType(). Referenced by GetMinTrailingZeros(), and llvm::SCEVAddRecExpr::getNumIterationsInRange(). |
|
|
|
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(). |
|
|
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. Referenced by llvm::SCEVUDivExpr::hasComputableLoopEvolution(). |
|
|
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. Referenced by llvm::SCEVUDivExpr::isLoopInvariant(). |
|
|
isZero - Return true if the expression is a constant zero. Definition at line 126 of file ScalarEvolution.cpp. References llvm::SCEVConstant::getValue(), and llvm::ConstantInt::isZero(). |
|
|
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. |
|
|
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(), and llvm::operator<<(). |
|
||||||||||||||||
|
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. Referenced by llvm::SCEVUDivExpr::replaceSymbolicValuesWithConcrete(). |
|
|
Definition at line 46 of file ScalarEvolution.h. |