LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::SCEV Class Reference

#include <ScalarEvolution.h>

Inheritance diagram for llvm::SCEV:

Inheritance graph
[legend]
Collaboration diagram for llvm::SCEV:

Collaboration graph
[legend]
List of all members.

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 TypegetType () const =0
virtual void print (std::ostream &OS) const =0
void dump () const

Protected Member Functions

virtual ~SCEV ()

Friends

class SCEVHandle

Detailed Description

SCEV - This class represent an analyzed expression in the program. These are reference counted opaque objects that the client is not allowed to do much with directly.

Definition at line 39 of file ScalarEvolution.h.


Constructor & Destructor Documentation

SCEV::~SCEV  )  [protected, virtual]
 

Definition at line 114 of file ScalarEvolution.cpp.

llvm::SCEV::SCEV unsigned  SCEVTy  )  [inline]
 

Definition at line 55 of file ScalarEvolution.h.


Member Function Documentation

void SCEV::dump  )  const
 

dump - This method is used for debugging.

Definition at line 115 of file ScalarEvolution.cpp.

References print().

unsigned llvm::SCEV::getSCEVType  )  const [inline]
 

Definition at line 57 of file ScalarEvolution.h.

Referenced by llvm::SCEVUnknown::classof(), llvm::SCEVAddRecExpr::classof(), llvm::SCEVUDivExpr::classof(), llvm::SCEVMulExpr::classof(), llvm::SCEVAddExpr::classof(), llvm::SCEVCommutativeExpr::classof(), llvm::SCEVZeroExtendExpr::classof(), llvm::SCEVTruncateExpr::classof(), llvm::SCEVConstant::classof(), llvm::SCEVCouldNotCompute::classof(), llvm::SCEVMulExpr::get(), llvm::SCEVAddExpr::get(), GroupByComplexity(), llvm::SCEVVisitor< SC, RetVal >::visit(), and llvm::SCEVCommutativeExpr::~SCEVCommutativeExpr().

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::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.

Referenced by getValueRange().

ConstantRange SCEV::getValueRange  )  const [virtual]
 

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().

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::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.

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::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::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.

Referenced by dump(), and llvm::operator<<().


Friends And Related Function Documentation

friend class SCEVHandle [friend]
 

Definition at line 43 of file ScalarEvolution.h.


The documentation for this class was generated from the following files: