aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis/ScalarEvolutionExpressions.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Analysis/ScalarEvolutionExpressions.h')
-rw-r--r--include/llvm/Analysis/ScalarEvolutionExpressions.h18
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;