Mercurial > hg > CbC > CbC_llvm
diff include/llvm/Analysis/IVUsers.h @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 54457678186b |
children | 1172e4bd9c6f |
line wrap: on
line diff
--- a/include/llvm/Analysis/IVUsers.h Wed Feb 18 14:56:07 2015 +0900 +++ b/include/llvm/Analysis/IVUsers.h Tue Oct 13 17:48:58 2015 +0900 @@ -21,6 +21,7 @@ namespace llvm { +class AssumptionCache; class DominatorTree; class Instruction; class Value; @@ -33,7 +34,7 @@ /// The Expr member keeps track of the expression, User is the actual user /// instruction of the operand, and 'OperandValToReplace' is the operand of /// the User that is the use. -class IVStrideUse : public CallbackVH, public ilist_node<IVStrideUse> { +class IVStrideUse final : public CallbackVH, public ilist_node<IVStrideUse> { friend class IVUsers; public: IVStrideUse(IVUsers *P, Instruction* U, Value *O) @@ -119,16 +120,19 @@ class IVUsers : public LoopPass { friend class IVStrideUse; Loop *L; + AssumptionCache *AC; LoopInfo *LI; DominatorTree *DT; ScalarEvolution *SE; - const DataLayout *DL; - SmallPtrSet<Instruction*,16> Processed; + SmallPtrSet<Instruction*, 16> Processed; /// IVUses - A list of all tracked IV uses of induction variable expressions /// we are interested in. ilist<IVStrideUse> IVUses; + // Ephemeral values used by @llvm.assume in this function. + SmallPtrSet<const Value *, 32> EphValues; + void getAnalysisUsage(AnalysisUsage &AU) const override; bool runOnLoop(Loop *L, LPPassManager &LPM) override;