aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-03-21 20:29:56 +0000
committerChris Lattner <sabre@nondot.org>2005-03-21 20:29:56 +0000
commitd75e334d2460c64441d8770b34d025d1315b256c (patch)
tree9c2323b56f7c0aea2bb10856fcb4ae27fb5be1a1
parentb3439374ac144cc0ecd4fd0b238ca2d193897312 (diff)
add a new map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20742 91177308-0d34-0410-b5e6-96231b3b80d8
-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(); }