LLVM API Documentation
#include <ScalarEvolution.h>
Inheritance diagram for llvm::SCEV:
Public Member Functions | |
SCEV (unsigned SCEVTy) | |
unsigned | getSCEVType () const |
virtual ConstantRange | getValueRange () const |
virtual bool | isLoopInvariant (const Loop *L) const =0 |
virtual bool | hasComputableLoopEvolution (const Loop *L) const =0 |
virtual const Type * | getType () const =0 |
virtual void | print (std::ostream &OS) const =0 |
void | dump () const |
Protected Member Functions | |
virtual | ~SCEV () |
Friends | |
class | SCEVHandle |
Definition at line 39 of file ScalarEvolution.h.
|
Definition at line 114 of file ScalarEvolution.cpp. |
|
Definition at line 55 of file ScalarEvolution.h. |
|
dump - This method is used for debugging. Definition at line 115 of file ScalarEvolution.cpp. References print(). |
|
|
getType - Return the LLVM type of this SCEV expression. Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown. Referenced by getValueRange(). |
|
getValueRange - Return the tightest constant bounds that this value is known to have. This method is only valid on integer SCEV objects. Reimplemented in llvm::SCEVConstant, llvm::SCEVTruncateExpr, and llvm::SCEVZeroExtendExpr. Definition at line 121 of file ScalarEvolution.cpp. References getType(), llvm::Type::getUnsignedVersion(), and llvm::Type::isInteger(). |
|
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::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown. |
|
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::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown. |
|
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::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown. Referenced by dump(), and llvm::operator<<(). |
|
Definition at line 43 of file ScalarEvolution.h. |