diff options
Diffstat (limited to 'include/llvm/Analysis/ScalarEvolutionExpressions.h')
-rw-r--r-- | include/llvm/Analysis/ScalarEvolutionExpressions.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/llvm/Analysis/ScalarEvolutionExpressions.h b/include/llvm/Analysis/ScalarEvolutionExpressions.h index 652a99d..61bb25a 100644 --- a/include/llvm/Analysis/ScalarEvolutionExpressions.h +++ b/include/llvm/Analysis/ScalarEvolutionExpressions.h @@ -20,6 +20,7 @@ namespace llvm { class ConstantInt; class ConstantRange; class APInt; + class DominatorTree; enum SCEVTypes { // These should be ordered in terms of increasing complexity to make the @@ -58,6 +59,10 @@ namespace llvm { return this; } + bool dominates(BasicBlock *BB, DominatorTree *DT) const { + return true; + } + virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); } @@ -100,6 +105,8 @@ namespace llvm { return SE.getTruncateExpr(H, Ty); } + virtual bool dominates(BasicBlock *BB, DominatorTree *DT) const; + virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); } @@ -142,6 +149,8 @@ namespace llvm { return SE.getZeroExtendExpr(H, Ty); } + bool dominates(BasicBlock *BB, DominatorTree *DT) const; + virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); } @@ -184,6 +193,8 @@ namespace llvm { return SE.getSignExtendExpr(H, Ty); } + bool dominates(BasicBlock *BB, DominatorTree *DT) const; + virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); } @@ -250,6 +261,8 @@ namespace llvm { const SCEVHandle &Conc, ScalarEvolution &SE) const; + bool dominates(BasicBlock *BB, DominatorTree *DT) const; + virtual const char *getOperationStr() const = 0; virtual const Type *getType() const { return getOperand(0)->getType(); } @@ -343,6 +356,7 @@ namespace llvm { return SE.getUDivExpr(L, R); } + bool dominates(BasicBlock *BB, DominatorTree *DT) const; virtual const Type *getType() const; @@ -437,6 +451,8 @@ namespace llvm { const SCEVHandle &Conc, ScalarEvolution &SE) const; + bool dominates(BasicBlock *BB, DominatorTree *DT) const; + virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); } @@ -518,6 +534,8 @@ namespace llvm { return this; } + bool dominates(BasicBlock *BB, DominatorTree *DT) const; + virtual const Type *getType() const; virtual void print(std::ostream &OS) const; |