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.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/llvm/Analysis/DataStructure/DataStructure.h b/include/llvm/Analysis/DataStructure/DataStructure.h
index 15ae2dc945..a12467eb99 100644
--- a/include/llvm/Analysis/DataStructure/DataStructure.h
+++ b/include/llvm/Analysis/DataStructure/DataStructure.h
@@ -201,6 +201,14 @@ class TDDataStructures : public ModulePass {
std::map<DSGraph*, std::vector<CallerCallEdge> > CallerEdges;
+
+ // IndCallMap - We memoize the results of indirect call inlining operations
+ // that have multiple targets here to avoid N*M inlining. The key to the map
+ // is a sorted set of callee functions, the value is the DSGraph that holds
+ // all of the caller graphs merged together, and the DSCallSite to merge with
+ // the arguments for each function.
+ std::map<std::vector<Function*>, DSGraph*> IndCallMap;
+
public:
~TDDataStructures() { releaseMyMemory(); }