LLVM API Documentation

llvm::SCEVUnknown Class Reference

#include <ScalarEvolutionExpressions.h>

Inheritance diagram for llvm::SCEVUnknown:
[legend]
Collaboration diagram for llvm::SCEVUnknown:
[legend]

List of all members.

Public Member Functions

Value * getValue () const
virtual bool isLoopInvariant (const Loop *L) const
virtual bool hasComputableLoopEvolution (const Loop *QL) const
SCEVHandle replaceSymbolicValuesWithConcrete (const SCEVHandle &Sym, const SCEVHandle &Conc, ScalarEvolution &SE) const
virtual const Type * getType () const
virtual void print (std::ostream &OS) const
void print (std::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)

Protected Member Functions

 ~SCEVUnknown ()

Friends

class ScalarEvolution


Detailed Description

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

Definition at line 498 of file ScalarEvolutionExpressions.h.


Constructor & Destructor Documentation

SCEVUnknown::~SCEVUnknown (  )  [protected]

Definition at line 384 of file ScalarEvolution.cpp.

References V.


Member Function Documentation

Value* llvm::SCEVUnknown::getValue (  )  const [inline]

Definition at line 507 of file ScalarEvolutionExpressions.h.

References V.

Referenced by llvm::SCEVExpander::visitUnknown().

bool 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.

Definition at line 386 of file ScalarEvolution.cpp.

References llvm::LoopBase< BlockT >::contains(), and V.

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.

Definition at line 510 of file ScalarEvolutionExpressions.h.

SCEVHandle llvm::SCEVUnknown::replaceSymbolicValuesWithConcrete ( const SCEVHandle &  Sym,
const SCEVHandle &  Conc,
ScalarEvolution &  SE 
) const [inline, virtual]

replaceSymbolicValuesWithConcrete - If this SCEV internally references the symbolic value "Sym", construct and return a new SCEV that produces the same value, but which uses the concrete value Conc instead of the symbolic value. If this SCEV does not use the symbolic value, it returns itself.

Implements llvm::SCEV.

Definition at line 514 of file ScalarEvolutionExpressions.h.

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

getType - Return the LLVM type of this SCEV expression.

Implements llvm::SCEV.

Definition at line 394 of file ScalarEvolution.cpp.

References V.

void SCEVUnknown::print ( std::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.

Definition at line 398 of file ScalarEvolution.cpp.

References V, and llvm::WriteAsOperand().

Referenced by print().

void llvm::SCEVUnknown::print ( std::ostream *  OS  )  const [inline]

Reimplemented from llvm::SCEV.

Definition at line 524 of file ScalarEvolutionExpressions.h.

References print().

static bool llvm::SCEVUnknown::classof ( const SCEVUnknown *  S  )  [inline, static]

Methods for support type inquiry through isa, cast, and dyn_cast:.

Definition at line 527 of file ScalarEvolutionExpressions.h.

static bool llvm::SCEVUnknown::classof ( const SCEV *  S  )  [inline, static]

Definition at line 528 of file ScalarEvolutionExpressions.h.

References llvm::SCEV::getSCEVType(), and llvm::scUnknown.


Friends And Related Function Documentation

friend class ScalarEvolution [friend]

Definition at line 499 of file ScalarEvolutionExpressions.h.


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