summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2015-09-18 21:06:14 +0000
committerAdrian Prantl <aprantl@apple.com>2015-09-18 21:06:14 +0000
commit201e10d0072b7d85f021888fddca8c4a76d08223 (patch)
treeb4251614936fad526c6a2e1d3e1500ecb9b2f8ce
parent33896a9872486d12ac52b51cd4e98efe4f78a53a (diff)
downloadbcm5719-llvm-201e10d0072b7d85f021888fddca8c4a76d08223.tar.gz
bcm5719-llvm-201e10d0072b7d85f021888fddca8c4a76d08223.zip
Debug Info: Use the full module name as a key when caching DIModules.
The signature may not have been computed at the time the module reference is generated (e.g.: in the future while emitting debug info for a clang module). Using the full module name is safe because each clang module may only have a single definition. NFC. llvm-svn: 248037
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.cpp2
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.h4
2 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp
index b8cf83ee48c..0b44e93c5cf 100644
--- a/clang/lib/CodeGen/CGDebugInfo.cpp
+++ b/clang/lib/CodeGen/CGDebugInfo.cpp
@@ -1674,7 +1674,7 @@ llvm::DIType *CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
llvm::DIModule *
CGDebugInfo::getOrCreateModuleRef(ExternalASTSource::ASTSourceDescriptor Mod) {
- auto &ModRef = ModuleRefCache[Mod.Signature];
+ auto &ModRef = ModuleRefCache[Mod.ModuleName];
if (ModRef)
return cast<llvm::DIModule>(ModRef);
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h
index 6a2a1424e5a..72c67791784 100644
--- a/clang/lib/CodeGen/CGDebugInfo.h
+++ b/clang/lib/CodeGen/CGDebugInfo.h
@@ -93,8 +93,8 @@ class CGDebugInfo {
/// Cache of previously constructed interfaces which may change.
llvm::SmallVector<ObjCInterfaceCacheEntry, 32> ObjCInterfaceCache;
- /// Cache of references to AST files such as PCHs or modules.
- llvm::DenseMap<uint64_t, llvm::TrackingMDRef> ModuleRefCache;
+ /// Cache of references to clang modules and precompiled headers.
+ llvm::StringMap<llvm::TrackingMDRef> ModuleRefCache;
/// List of interfaces we want to keep even if orphaned.
std::vector<void *> RetainedTypes;
OpenPOWER on IntegriCloud