LLVM API Documentation

llvm::SCEVCouldNotCompute Struct Reference

#include <ScalarEvolution.h>

Inheritance diagram for llvm::SCEVCouldNotCompute:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SCEVCouldNotCompute ()
virtual bool isLoopInvariant (const Loop *L) const
virtual const TypegetType () const
virtual bool hasComputableLoopEvolution (const Loop *L) const
virtual void print (std::ostream &OS) const
virtual SCEVHandle replaceSymbolicValuesWithConcrete (const SCEVHandle &Sym, const SCEVHandle &Conc) const

Static Public Member Functions

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

Detailed Description

SCEVCouldNotCompute - An object of this class is returned by queries that could not be answered. For example, if you ask for the number of iterations of a linked-list traversal loop, you will get one of these. None of the standard SCEV operations are valid on this class, it is just a marker.

Definition at line 116 of file ScalarEvolution.h.


Constructor & Destructor Documentation

SCEVCouldNotCompute::SCEVCouldNotCompute (  ) 

Definition at line 132 of file ScalarEvolution.cpp.


Member Function Documentation

bool SCEVCouldNotCompute::classof ( const SCEV S  )  [static]

Definition at line 159 of file ScalarEvolution.cpp.

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

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

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

Definition at line 129 of file ScalarEvolution.h.

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

getType - Return the LLVM type of this SCEV expression.

Implements llvm::SCEV.

Definition at line 139 of file ScalarEvolution.cpp.

bool SCEVCouldNotCompute::hasComputableLoopEvolution ( const Loop L  )  const [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 144 of file ScalarEvolution.cpp.

bool SCEVCouldNotCompute::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 134 of file ScalarEvolution.cpp.

void SCEVCouldNotCompute::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 155 of file ScalarEvolution.cpp.

SCEVHandle SCEVCouldNotCompute::replaceSymbolicValuesWithConcrete ( const SCEVHandle Sym,
const SCEVHandle Conc 
) const [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 150 of file ScalarEvolution.cpp.


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