From: Dan Gohman Date: Tue, 19 May 2009 19:22:47 +0000 (+0000) Subject: Make SCEVCallbackVH a private nested class inside ScalarEvolution, as X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=1959b7562e57f8394496e761486f23b187ac3f1b;p=oota-llvm.git Make SCEVCallbackVH a private nested class inside ScalarEvolution, as it's an implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72122 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Analysis/ScalarEvolution.h b/include/llvm/Analysis/ScalarEvolution.h index 43fc2bde330..7019516a91a 100644 --- a/include/llvm/Analysis/ScalarEvolution.h +++ b/include/llvm/Analysis/ScalarEvolution.h @@ -145,16 +145,6 @@ namespace llvm { static bool classof(const SCEV *S); }; - /// SCEVCallbackVH - A CallbackVH to arrange for ScalarEvolution to be - /// notified whenever a Value is deleted. - class SCEVCallbackVH : public CallbackVH { - ScalarEvolution *SE; - virtual void deleted(); - virtual void allUsesReplacedWith(Value *New); - public: - SCEVCallbackVH(Value *V, ScalarEvolution *SE = 0); - }; - /// SCEVHandle - This class is used to maintain the SCEV object's refcounts, /// freeing the objects when the last reference is dropped. class SCEVHandle { @@ -212,6 +202,16 @@ namespace llvm { /// they must ask this class for services. /// class ScalarEvolution : public FunctionPass { + /// SCEVCallbackVH - A CallbackVH to arrange for ScalarEvolution to be + /// notified whenever a Value is deleted. + class SCEVCallbackVH : public CallbackVH { + ScalarEvolution *SE; + virtual void deleted(); + virtual void allUsesReplacedWith(Value *New); + public: + SCEVCallbackVH(Value *V, ScalarEvolution *SE = 0); + }; + friend class SCEVCallbackVH; friend class SCEVExpander; diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index 0857014863b..50ba7ecd540 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -3674,7 +3674,7 @@ SCEVHandle SCEVAddRecExpr::getNumIterationsInRange(ConstantRange Range, // SCEVCallbackVH Class Implementation //===----------------------------------------------------------------------===// -void SCEVCallbackVH::deleted() { +void ScalarEvolution::SCEVCallbackVH::deleted() { assert(SE && "SCEVCallbackVH called with a non-null ScalarEvolution!"); if (PHINode *PN = dyn_cast(getValPtr())) SE->ConstantEvolutionLoopExitValue.erase(PN); @@ -3684,7 +3684,7 @@ void SCEVCallbackVH::deleted() { // this now dangles! } -void SCEVCallbackVH::allUsesReplacedWith(Value *) { +void ScalarEvolution::SCEVCallbackVH::allUsesReplacedWith(Value *) { assert(SE && "SCEVCallbackVH called with a non-null ScalarEvolution!"); // Forget all the expressions associated with users of the old value, @@ -3724,7 +3724,7 @@ void SCEVCallbackVH::allUsesReplacedWith(Value *) { // this may dangle! } -SCEVCallbackVH::SCEVCallbackVH(Value *V, ScalarEvolution *se) +ScalarEvolution::SCEVCallbackVH::SCEVCallbackVH(Value *V, ScalarEvolution *se) : CallbackVH(V), SE(se) {} //===----------------------------------------------------------------------===//