#include <ScalarEvolution.h>

Public Member Functions | |
| SCEV (const FoldingSetNodeIDRef ID, unsigned SCEVTy) | |
| unsigned | getSCEVType () const |
| void | Profile (FoldingSetNodeID &ID) |
| Profile - FoldingSet support. | |
| virtual bool | isLoopInvariant (const Loop *L) const =0 |
| virtual bool | hasComputableLoopEvolution (const Loop *L) const =0 |
| virtual const Type * | getType () const =0 |
| bool | isZero () const |
| bool | isOne () const |
| bool | isAllOnesValue () const |
| virtual bool | hasOperand (const SCEV *Op) const =0 |
| virtual bool | dominates (BasicBlock *BB, DominatorTree *DT) const =0 |
| virtual bool | properlyDominates (BasicBlock *BB, DominatorTree *DT) const =0 |
| virtual void | print (raw_ostream &OS) const =0 |
| void | dump () const |
Protected Attributes | |
| unsigned short | SubclassData |
| virtual bool llvm::SCEV::dominates | ( | BasicBlock * | BB, | |
| DominatorTree * | DT | |||
| ) | const [pure virtual] |
dominates - Return true if elements that makes up this SCEV dominates the specified basic block.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVCastExpr, llvm::SCEVNAryExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| void llvm::SCEV::dump | ( | ) | const |
dump - This method is used for debugging.
| virtual const Type* llvm::SCEV::getType | ( | ) | const [pure virtual] |
getType - Return the LLVM type of this SCEV expression.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVCastExpr, llvm::SCEVNAryExpr, llvm::SCEVAddExpr, llvm::SCEVUDivExpr, and llvm::SCEVUnknown.
| virtual bool llvm::SCEV::hasComputableLoopEvolution | ( | const Loop * | L | ) | const [pure 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.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVCastExpr, llvm::SCEVNAryExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| virtual bool llvm::SCEV::hasOperand | ( | const SCEV * | Op | ) | const [pure virtual] |
hasOperand - Test whether this SCEV has Op as a direct or indirect operand.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVCastExpr, llvm::SCEVNAryExpr, llvm::SCEVUDivExpr, and llvm::SCEVUnknown.
| bool llvm::SCEV::isAllOnesValue | ( | ) | const |
isAllOnesValue - Return true if the expression is a constant all-ones value.
| virtual bool llvm::SCEV::isLoopInvariant | ( | const Loop * | L | ) | const [pure virtual] |
isLoopInvariant - Return true if the value of this SCEV is unchanging in the specified loop.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVCastExpr, llvm::SCEVNAryExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| bool llvm::SCEV::isOne | ( | ) | const |
isOne - Return true if the expression is a constant one.
| bool llvm::SCEV::isZero | ( | ) | const |
isZero - Return true if the expression is a constant zero.
| virtual void llvm::SCEV::print | ( | raw_ostream & | OS | ) | const [pure virtual] |
print - Print out the internal representation of this scalar to the specified stream. This should really only be used for debugging purposes.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVTruncateExpr, llvm::SCEVZeroExtendExpr, llvm::SCEVSignExtendExpr, llvm::SCEVCommutativeExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
| virtual bool llvm::SCEV::properlyDominates | ( | BasicBlock * | BB, | |
| DominatorTree * | DT | |||
| ) | const [pure virtual] |
properlyDominates - Return true if elements that makes up this SCEV properly dominate the specified basic block.
Implemented in llvm::SCEVCouldNotCompute, llvm::SCEVConstant, llvm::SCEVCastExpr, llvm::SCEVNAryExpr, llvm::SCEVUDivExpr, llvm::SCEVAddRecExpr, and llvm::SCEVUnknown.
unsigned short llvm::SCEV::SubclassData [protected] |
SubclassData - This field is initialized to zero and may be used in subclasses to store miscellaneous information.
1.5.8