LLVM API Documentation

llvm::SCEVCommutativeExpr Class Reference

#include <ScalarEvolutionExpressions.h>

Inheritance diagram for llvm::SCEVCommutativeExpr:

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

Collaboration graph
[legend]

List of all members.

Public Types

typedef std::vector
< SCEVHandle >::const_iterator 
op_iterator

Public Member Functions

unsigned getNumOperands () const
const SCEVHandlegetOperand (unsigned i) const
const std::vector< SCEVHandle > & getOperands () const
op_iterator op_begin () const
op_iterator op_end () const
virtual bool isLoopInvariant (const Loop *L) const
virtual bool hasComputableLoopEvolution (const Loop *L) const
SCEVHandle replaceSymbolicValuesWithConcrete (const SCEVHandle &Sym, const SCEVHandle &Conc, ScalarEvolution &SE) const
virtual const char * getOperationStr () const =0
virtual const TypegetType () const
virtual void print (std::ostream &OS) const
void print (std::ostream *OS) const

Static Public Member Functions

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

Protected Member Functions

 SCEVCommutativeExpr (enum SCEVTypes T, const std::vector< SCEVHandle > &ops)
 ~SCEVCommutativeExpr ()

Friends

class ScalarEvolution


Detailed Description

SCEVCommutativeExpr - This node is the base class for n'ary commutative operators.

Definition at line 202 of file ScalarEvolutionExpressions.h.


Member Typedef Documentation

typedef std::vector<SCEVHandle>::const_iterator llvm::SCEVCommutativeExpr::op_iterator

Definition at line 223 of file ScalarEvolutionExpressions.h.


Constructor & Destructor Documentation

llvm::SCEVCommutativeExpr::SCEVCommutativeExpr ( enum SCEVTypes  T,
const std::vector< SCEVHandle > &  ops 
) [inline, protected]

Definition at line 208 of file ScalarEvolutionExpressions.h.

SCEVCommutativeExpr::~SCEVCommutativeExpr (  )  [protected]

Definition at line 262 of file ScalarEvolution.cpp.

References llvm::SCEV::getSCEVType().


Member Function Documentation

unsigned llvm::SCEVCommutativeExpr::getNumOperands (  )  const [inline]

const SCEVHandle& llvm::SCEVCommutativeExpr::getOperand ( unsigned  i  )  const [inline]

const std::vector<SCEVHandle>& llvm::SCEVCommutativeExpr::getOperands (  )  const [inline]

Definition at line 222 of file ScalarEvolutionExpressions.h.

op_iterator llvm::SCEVCommutativeExpr::op_begin (  )  const [inline]

Definition at line 224 of file ScalarEvolutionExpressions.h.

Referenced by llvm::ScalarEvolution::getAddExpr().

op_iterator llvm::SCEVCommutativeExpr::op_end (  )  const [inline]

Definition at line 225 of file ScalarEvolutionExpressions.h.

Referenced by llvm::ScalarEvolution::getAddExpr().

virtual bool llvm::SCEVCommutativeExpr::isLoopInvariant ( const Loop L  )  const [inline, virtual]

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

Implements llvm::SCEV.

Definition at line 228 of file ScalarEvolutionExpressions.h.

References getNumOperands(), and getOperand().

Referenced by hasComputableLoopEvolution().

virtual bool llvm::SCEVCommutativeExpr::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 237 of file ScalarEvolutionExpressions.h.

References getNumOperands(), getOperand(), and isLoopInvariant().

SCEVHandle SCEVCommutativeExpr::replaceSymbolicValuesWithConcrete ( const SCEVHandle Sym,
const SCEVHandle Conc,
ScalarEvolution SE 
) 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 278 of file ScalarEvolution.cpp.

References llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), getNumOperands(), getOperand(), llvm::ScalarEvolution::getSMaxExpr(), llvm::ScalarEvolution::getUMaxExpr(), and H.

virtual const char* llvm::SCEVCommutativeExpr::getOperationStr (  )  const [pure virtual]

virtual const Type* llvm::SCEVCommutativeExpr::getType (  )  const [inline, virtual]

getType - Return the LLVM type of this SCEV expression.

Implements llvm::SCEV.

Definition at line 255 of file ScalarEvolutionExpressions.h.

References getOperand().

void SCEVCommutativeExpr::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 268 of file ScalarEvolution.cpp.

References getOperationStr().

Referenced by print().

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

Reimplemented from llvm::SCEV.

Definition at line 257 of file ScalarEvolutionExpressions.h.

References print().

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

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

Definition at line 260 of file ScalarEvolutionExpressions.h.

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


Friends And Related Function Documentation

friend class ScalarEvolution [friend]


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.