llvm::SCEVUnknown Class Reference

#include <ScalarEvolutionExpressions.h>

Inheritance diagram for llvm::SCEVUnknown:

llvm::SCEV

List of all members.

Public Member Functions

Value * getValue () const
bool isSizeOf (const Type *&AllocTy) const
bool isAlignOf (const Type *&AllocTy) const
bool isOffsetOf (const Type *&STy, Constant *&FieldNo) const
virtual bool isLoopInvariant (const Loop *L) const
virtual bool hasComputableLoopEvolution (const Loop *QL) const
virtual bool hasOperand (const SCEV *) const
bool dominates (BasicBlock *BB, DominatorTree *DT) const
bool properlyDominates (BasicBlock *BB, DominatorTree *DT) const
virtual const Type * getType () const
virtual void print (raw_ostream &OS) const

Static Public Member Functions

static bool classof (const SCEVUnknown *S)
 Methods for support type inquiry through isa, cast, and dyn_cast:.
static bool classof (const SCEV *S)

Friends

class ScalarEvolution


Detailed Description

SCEVUnknown - This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. This is the "bottom" value for the analysis.

Member Function Documentation

bool llvm::SCEVUnknown::dominates ( BasicBlock *  BB,
DominatorTree DT 
) const [virtual]

dominates - Return true if elements that makes up this SCEV dominates the specified basic block.

Implements llvm::SCEV.

virtual const Type* llvm::SCEVUnknown::getType (  )  const [virtual]

getType - Return the LLVM type of this SCEV expression.

Implements llvm::SCEV.

virtual bool llvm::SCEVUnknown::hasComputableLoopEvolution ( const Loop *  L  )  const [inline, 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.

Implements llvm::SCEV.

virtual bool llvm::SCEVUnknown::hasOperand ( const SCEV Op  )  const [inline, virtual]

hasOperand - Test whether this SCEV has Op as a direct or indirect operand.

Implements llvm::SCEV.

virtual bool llvm::SCEVUnknown::isLoopInvariant ( const Loop *  L  )  const [virtual]

isLoopInvariant - Return true if the value of this SCEV is unchanging in the specified loop.

Implements llvm::SCEV.

bool llvm::SCEVUnknown::isSizeOf ( const Type *&  AllocTy  )  const

isSizeOf, isAlignOf, isOffsetOf - Test whether this is a special constant representing a type size, alignment, or field offset in a target-independent manner, and hasn't happened to have been folded with other operations into something unrecognizable. This is mainly only useful for pretty-printing and other situations where it isn't absolutely required for these to succeed.

virtual void llvm::SCEVUnknown::print ( raw_ostream &  OS  )  const [virtual]

print - Print out the internal representation of this scalar to the specified stream. This should really only be used for debugging purposes.

Implements llvm::SCEV.

bool llvm::SCEVUnknown::properlyDominates ( BasicBlock *  BB,
DominatorTree DT 
) const [virtual]

properlyDominates - Return true if elements that makes up this SCEV properly dominate the specified basic block.

Implements llvm::SCEV.


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

Generated on Fri Mar 19 01:41:27 2010 by  doxygen 1.5.8