diff options
author | Chris Lattner <sabre@nondot.org> | 2002-03-28 19:15:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-03-28 19:15:38 +0000 |
commit | d38cadb13d0e7091a15269c39c7703e137ec174b (patch) | |
tree | ef1f0cced5b8e398a724aae1f6754daa6e88ddd2 /include | |
parent | cdae0b2591ee1772af0874e1956da01762405c42 (diff) | |
download | external_llvm-d38cadb13d0e7091a15269c39c7703e137ec174b.zip external_llvm-d38cadb13d0e7091a15269c39c7703e137ec174b.tar.gz external_llvm-d38cadb13d0e7091a15269c39c7703e137ec174b.tar.bz2 |
* 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
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Analysis/DataStructure.h | 20 | ||||
-rw-r--r-- | include/llvm/Analysis/DataStructure/DataStructure.h | 20 |
2 files changed, 34 insertions, 6 deletions
diff --git a/include/llvm/Analysis/DataStructure.h b/include/llvm/Analysis/DataStructure.h index 5132208..6a04827 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<AllocDSNode*> &Allocs); + + // getEscapingAllocations - Add all allocations that do not escape the current + // function to the specified vector. + // + void getNonEscapingAllocations(std::vector<AllocDSNode*> &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 5132208..6a04827 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<AllocDSNode*> &Allocs); + + // getEscapingAllocations - Add all allocations that do not escape the current + // function to the specified vector. + // + void getNonEscapingAllocations(std::vector<AllocDSNode*> &Allocs); + void printFunction(std::ostream &O, const char *Label) const; }; |