aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Analysis/DataStructure/DataStructure.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Analysis/DataStructure/DataStructure.h')
-rw-r--r--include/llvm/Analysis/DataStructure/DataStructure.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/include/llvm/Analysis/DataStructure/DataStructure.h b/include/llvm/Analysis/DataStructure/DataStructure.h
index 15caec5c3a..1a9a855735 100644
--- a/include/llvm/Analysis/DataStructure/DataStructure.h
+++ b/include/llvm/Analysis/DataStructure/DataStructure.h
@@ -116,6 +116,9 @@ protected:
/// GlobalECs - The equivalence classes for each global value that is merged
/// with other global values in the DSGraphs.
EquivalenceClasses<GlobalValue*> GlobalECs;
+
+ std::map<CallSite, std::vector<Function*> > AlreadyInlined;
+
public:
~BUDataStructures() { releaseMyMemory(); }
@@ -135,6 +138,12 @@ public:
return const_cast<BUDataStructures*>(this)->
CreateGraphForExternalFunction(F);
}
+
+ /// DSGraphExists - Is the DSGraph computed for this function?
+ ///
+ bool doneDSGraph(const Function *F) const {
+ return (DSInfo.find(const_cast<Function*>(F)) != DSInfo.end());
+ }
DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
@@ -176,7 +185,7 @@ public:
}
private:
- void calculateGraph(DSGraph &G);
+ bool calculateGraph(DSGraph &G);
DSGraph &getOrCreateGraph(Function *F);