From: Chris Lattner Date: Thu, 28 Mar 2002 19:15:38 +0000 (+0000) Subject: * Remove RemoveUnreachableShadowNodes & UnlinkUndistinguishableShadowNodes X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d38cadb13d0e7091a15269c39c7703e137ec174b;p=oota-llvm.git * Remove RemoveUnreachableShadowNodes & UnlinkUndistinguishableShadowNodes to reflect the fact that they actually operate on arbitrary nodes * Clean up public interface of FunctionDSGraph * add getEscapingAllocations & getNonEscapingAllocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2019 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Analysis/DataStructure.h b/include/llvm/Analysis/DataStructure.h index 5132208277e..6a048276f1c 100644 --- a/include/llvm/Analysis/DataStructure.h +++ b/include/llvm/Analysis/DataStructure.h @@ -355,17 +355,31 @@ class FunctionDSGraph { // as the data structure graph itself. // PointerValSet cloneFunctionIntoSelf(const FunctionDSGraph &G, bool ValueMap); - bool RemoveUnreachableShadowNodes(); - bool UnlinkUndistinguishableShadowNodes(); -public: + bool RemoveUnreachableNodes(); + bool UnlinkUndistinguishableNodes(); + +private: + // Define the interface only accessable to DataStructure + friend class DataStructure; FunctionDSGraph(Function *F); FunctionDSGraph(const FunctionDSGraph &DSG); ~FunctionDSGraph(); void computeClosure(const DataStructure &DS); +public: Function *getFunction() const { return Func; } + // getEscapingAllocations - Add all allocations that escape the current + // function to the specified vector. + // + void getEscapingAllocations(std::vector &Allocs); + + // getEscapingAllocations - Add all allocations that do not escape the current + // function to the specified vector. + // + void getNonEscapingAllocations(std::vector &Allocs); + void printFunction(std::ostream &O, const char *Label) const; }; diff --git a/include/llvm/Analysis/DataStructure/DataStructure.h b/include/llvm/Analysis/DataStructure/DataStructure.h index 5132208277e..6a048276f1c 100644 --- a/include/llvm/Analysis/DataStructure/DataStructure.h +++ b/include/llvm/Analysis/DataStructure/DataStructure.h @@ -355,17 +355,31 @@ class FunctionDSGraph { // as the data structure graph itself. // PointerValSet cloneFunctionIntoSelf(const FunctionDSGraph &G, bool ValueMap); - bool RemoveUnreachableShadowNodes(); - bool UnlinkUndistinguishableShadowNodes(); -public: + bool RemoveUnreachableNodes(); + bool UnlinkUndistinguishableNodes(); + +private: + // Define the interface only accessable to DataStructure + friend class DataStructure; FunctionDSGraph(Function *F); FunctionDSGraph(const FunctionDSGraph &DSG); ~FunctionDSGraph(); void computeClosure(const DataStructure &DS); +public: Function *getFunction() const { return Func; } + // getEscapingAllocations - Add all allocations that escape the current + // function to the specified vector. + // + void getEscapingAllocations(std::vector &Allocs); + + // getEscapingAllocations - Add all allocations that do not escape the current + // function to the specified vector. + // + void getNonEscapingAllocations(std::vector &Allocs); + void printFunction(std::ostream &O, const char *Label) const; };