LLVM API Documentation
#include <ScalarEvolutionExpressions.h>
Inheritance diagram for llvm::SCEVCommutativeExpr:
Public Types | |
typedef std::vector< SCEVHandle >::const_iterator | op_iterator |
Public Member Functions | |
unsigned | getNumOperands () const |
const SCEVHandle & | getOperand (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) const |
virtual const char * | getOperationStr () const=0 |
virtual const Type * | getType () 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 () |
Definition at line 170 of file ScalarEvolutionExpressions.h.
typedef std::vector<SCEVHandle>::const_iterator llvm::SCEVCommutativeExpr::op_iterator |
Definition at line 189 of file ScalarEvolutionExpressions.h.
llvm::SCEVCommutativeExpr::SCEVCommutativeExpr | ( | enum SCEVTypes | T, | |
const std::vector< SCEVHandle > & | ops | |||
) | [inline, protected] |
Definition at line 174 of file ScalarEvolutionExpressions.h.
SCEVCommutativeExpr::~SCEVCommutativeExpr | ( | ) | [protected] |
Definition at line 256 of file ScalarEvolution.cpp.
References llvm::SCEV::getSCEVType(), and SCEVCommExprs.
unsigned llvm::SCEVCommutativeExpr::getNumOperands | ( | ) | const [inline] |
Definition at line 182 of file ScalarEvolutionExpressions.h.
Referenced by hasComputableLoopEvolution(), isLoopInvariant(), replaceSymbolicValuesWithConcrete(), llvm::SCEVExpander::visitAddExpr(), and llvm::SCEVExpander::visitMulExpr().
const SCEVHandle& llvm::SCEVCommutativeExpr::getOperand | ( | unsigned | i | ) | const [inline] |
Definition at line 183 of file ScalarEvolutionExpressions.h.
Referenced by getType(), hasComputableLoopEvolution(), isLoopInvariant(), replaceSymbolicValuesWithConcrete(), llvm::SCEVExpander::visitAddExpr(), and llvm::SCEVExpander::visitMulExpr().
const std::vector<SCEVHandle>& llvm::SCEVCommutativeExpr::getOperands | ( | ) | const [inline] |
Definition at line 188 of file ScalarEvolutionExpressions.h.
op_iterator llvm::SCEVCommutativeExpr::op_begin | ( | ) | const [inline] |
Definition at line 190 of file ScalarEvolutionExpressions.h.
op_iterator llvm::SCEVCommutativeExpr::op_end | ( | ) | const [inline] |
Definition at line 191 of file ScalarEvolutionExpressions.h.
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 194 of file ScalarEvolutionExpressions.h.
References getNumOperands(), and getOperand().
Referenced by llvm::SCEVMulExpr::get(), llvm::SCEVAddExpr::get(), and 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 203 of file ScalarEvolutionExpressions.h.
References getNumOperands(), getOperand(), and isLoopInvariant().
SCEVHandle SCEVCommutativeExpr::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 272 of file ScalarEvolution.cpp.
References llvm::SCEVMulExpr::get(), llvm::SCEVAddExpr::get(), getNumOperands(), getOperand(), 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 219 of file ScalarEvolutionExpressions.h.
References getOperand().
Referenced by llvm::SCEVExpander::visitAddExpr(), and llvm::SCEVExpander::visitMulExpr().
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 262 of file ScalarEvolution.cpp.
References getOperationStr().
static bool llvm::SCEVCommutativeExpr::classof | ( | const SCEVCommutativeExpr * | S | ) | [inline, static] |
Methods for support type inquiry through isa, cast, and dyn_cast:.
Definition at line 223 of file ScalarEvolutionExpressions.h.
static bool llvm::SCEVCommutativeExpr::classof | ( | const SCEV * | S | ) | [inline, static] |
Reimplemented in llvm::SCEVAddExpr, and llvm::SCEVMulExpr.
Definition at line 224 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::getSCEVType(), llvm::scAddExpr, and llvm::scMulExpr.