diff options
Diffstat (limited to 'include/llvm/Analysis/DataStructure/DataStructure.h')
-rw-r--r-- | include/llvm/Analysis/DataStructure/DataStructure.h | 8 |
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(); } |