LLVM  3.7.0
Classes | Namespaces | Typedefs | Enumerations | Functions
ScalarEvolutionExpressions.h File Reference
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Support/ErrorHandling.h"
Include dependency graph for ScalarEvolutionExpressions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::SCEVConstant
 SCEVConstant - This class represents a constant integer value. More...
 
class  llvm::SCEVCastExpr
 SCEVCastExpr - This is the base class for unary cast operator classes. More...
 
class  llvm::SCEVTruncateExpr
 SCEVTruncateExpr - This class represents a truncation of an integer value to a smaller integer value. More...
 
class  llvm::SCEVZeroExtendExpr
 SCEVZeroExtendExpr - This class represents a zero extension of a small integer value to a larger integer value. More...
 
class  llvm::SCEVSignExtendExpr
 SCEVSignExtendExpr - This class represents a sign extension of a small integer value to a larger integer value. More...
 
class  llvm::SCEVNAryExpr
 SCEVNAryExpr - This node is a base class providing common functionality for n'ary operators. More...
 
class  llvm::SCEVCommutativeExpr
 SCEVCommutativeExpr - This node is the base class for n'ary commutative operators. More...
 
class  llvm::SCEVAddExpr
 SCEVAddExpr - This node represents an addition of some number of SCEVs. More...
 
class  llvm::SCEVMulExpr
 SCEVMulExpr - This node represents multiplication of some number of SCEVs. More...
 
class  llvm::SCEVUDivExpr
 SCEVUDivExpr - This class represents a binary unsigned division operation. More...
 
class  llvm::SCEVAddRecExpr
 SCEVAddRecExpr - This node represents a polynomial recurrence on the trip count of the specified loop. More...
 
class  llvm::SCEVSMaxExpr
 SCEVSMaxExpr - This class represents a signed maximum selection. More...
 
class  llvm::SCEVUMaxExpr
 SCEVUMaxExpr - This class represents an unsigned maximum selection. More...
 
class  llvm::SCEVUnknown
 SCEVUnknown - This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. More...
 
struct  llvm::SCEVVisitor< SC, RetVal >
 SCEVVisitor - This class defines a simple visitor class that may be used for various SCEV analysis purposes. More...
 
class  llvm::SCEVTraversal< SV >
 Visit all nodes in the expression tree using worklist traversal. More...
 
struct  llvm::SCEVParameterRewriter
 The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value -> Value). More...
 
struct  llvm::SCEVApplyRewriter
 The SCEVApplyRewriter takes a scalar evolution expression and applies the Map (Loop -> SCEV) to all AddRecExprs. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Typedefs

typedef DenseMap< const Value
*, Value * > 
llvm::ValueToValueMap
 
typedef DenseMap< const Loop
*, const SCEV * > 
llvm::LoopToScevMapT
 

Enumerations

enum  llvm::SCEVTypes {
  llvm::scConstant, llvm::scTruncate, llvm::scZeroExtend, llvm::scSignExtend,
  llvm::scAddExpr, llvm::scMulExpr, llvm::scUDivExpr, llvm::scAddRecExpr,
  llvm::scUMaxExpr, llvm::scSMaxExpr, llvm::scUnknown, llvm::scCouldNotCompute
}
 

Functions

template<typename SV >
void llvm::visitAll (const SCEV *Root, SV &Visitor)
 Use SCEVTraversal to visit all nodes in the given expression tree. More...
 
static const SCEV * llvm::apply (const SCEV *Scev, LoopToScevMapT &Map, ScalarEvolution &SE)
 Applies the Map (Loop -> SCEV) to the given Scev. More...