LLVM API Documentation

Classes | Namespaces | Typedefs | Enumerations | Functions
ScalarEvolutionExpressions.h File Reference
#include "llvm/ADT/iterator_range.h"
#include "llvm/ADT/SmallPtrSet.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
class  llvm::SCEVCastExpr
class  llvm::SCEVTruncateExpr
class  llvm::SCEVZeroExtendExpr
class  llvm::SCEVSignExtendExpr
class  llvm::SCEVNAryExpr
class  llvm::SCEVCommutativeExpr
class  llvm::SCEVAddExpr
class  llvm::SCEVMulExpr
class  llvm::SCEVUDivExpr
class  llvm::SCEVAddRecExpr
class  llvm::SCEVSMaxExpr
class  llvm::SCEVUMaxExpr
class  llvm::SCEVUnknown
struct  llvm::SCEVVisitor< SC, RetVal >
class  llvm::SCEVTraversal< SV >
struct  llvm::SCEVParameterRewriter
struct  llvm::SCEVApplyRewriter

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


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 givien expression tree.
static const SCEV * llvm::apply (const SCEV *Scev, LoopToScevMapT &Map, ScalarEvolution &SE)
 Applies the Map (Loop -> SCEV) to the given Scev.