LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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
virtual const char * getOperationStr () const =0
virtual const TypegetType () const
virtual 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 ()

Detailed Description

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

Definition at line 149 of file ScalarEvolutionExpressions.h.


Member Typedef Documentation

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

Definition at line 168 of file ScalarEvolutionExpressions.h.


Constructor & Destructor Documentation

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

Definition at line 153 of file ScalarEvolutionExpressions.h.

SCEVCommutativeExpr::~SCEVCommutativeExpr  )  [protected]
 

Definition at line 247 of file ScalarEvolution.cpp.

References llvm::SCEV::getSCEVType().


Member Function Documentation

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

Reimplemented in llvm::SCEVAddExpr, and llvm::SCEVMulExpr.

Definition at line 192 of file ScalarEvolutionExpressions.h.

References llvm::SCEV::getSCEVType(), llvm::scAddExpr, and llvm::scMulExpr.

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

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

Definition at line 191 of file ScalarEvolutionExpressions.h.

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

Definition at line 161 of file ScalarEvolutionExpressions.h.

Referenced by llvm::SCEVAddExpr::get(), hasComputableLoopEvolution(), and isLoopInvariant().

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

Definition at line 162 of file ScalarEvolutionExpressions.h.

Referenced by llvm::SCEVAddExpr::get(), getType(), hasComputableLoopEvolution(), and isLoopInvariant().

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

Definition at line 167 of file ScalarEvolutionExpressions.h.

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

Implemented in llvm::SCEVAddExpr, and llvm::SCEVMulExpr.

Referenced by print().

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

getType - Return the LLVM type of this SCEV expression.

Implements llvm::SCEV.

Definition at line 187 of file ScalarEvolutionExpressions.h.

References getOperand().

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 179 of file ScalarEvolutionExpressions.h.

References getNumOperands(), and getOperand().

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 173 of file ScalarEvolutionExpressions.h.

References getNumOperands(), and getOperand().

Referenced by llvm::SCEVMulExpr::get(), and llvm::SCEVAddExpr::get().

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

Definition at line 169 of file ScalarEvolutionExpressions.h.

Referenced by llvm::SCEVAddExpr::get().

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

Definition at line 170 of file ScalarEvolutionExpressions.h.

Referenced by llvm::SCEVAddExpr::get().

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 253 of file ScalarEvolution.cpp.

References getOperationStr().


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