X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FAnalysis%2FIVUsers.h;h=37d01490dac6a2de8dd069dd8f13bcc6321c7558;hb=f3e6026b5b25b0c6e9a7f7f0df7f4df3dbccc5d9;hp=d1f037021773c9b6e3ca125bd4d8223214560a47;hpb=431bdfc4c118cd8bc39b0052abe6ceb0ea40de66;p=oota-llvm.git diff --git a/include/llvm/Analysis/IVUsers.h b/include/llvm/Analysis/IVUsers.h index d1f03702177..37d01490dac 100644 --- a/include/llvm/Analysis/IVUsers.h +++ b/include/llvm/Analysis/IVUsers.h @@ -21,6 +21,7 @@ namespace llvm { +class AssumptionCache; class DominatorTree; class Instruction; class Value; @@ -33,7 +34,7 @@ class DataLayout; /// 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 { +class IVStrideUse final : public CallbackVH, public ilist_node { friend class IVUsers; public: IVStrideUse(IVUsers *P, Instruction* U, Value *O) @@ -119,16 +120,19 @@ private: class IVUsers : public LoopPass { friend class IVStrideUse; Loop *L; + AssumptionCache *AC; LoopInfo *LI; DominatorTree *DT; ScalarEvolution *SE; - const DataLayout *DL; - SmallPtrSet Processed; + SmallPtrSet Processed; /// IVUses - A list of all tracked IV uses of induction variable expressions /// we are interested in. ilist IVUses; + // Ephemeral values used by @llvm.assume in this function. + SmallPtrSet EphValues; + void getAnalysisUsage(AnalysisUsage &AU) const override; bool runOnLoop(Loop *L, LPPassManager &LPM) override;