r247368 - Cleanup: Let CGDebugInfo::ModuleRefCache use a TrackingMDNode (NFC).

Adrian Prantl via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 10 18:03:20 PDT 2015


Author: adrian
Date: Thu Sep 10 20:03:19 2015
New Revision: 247368

URL: http://llvm.org/viewvc/llvm-project?rev=247368&view=rev
Log:
Cleanup: Let CGDebugInfo::ModuleRefCache use a TrackingMDNode (NFC).

Modified:
    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
    cfe/trunk/lib/CodeGen/CGDebugInfo.h

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=247368&r1=247367&r2=247368&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Sep 10 20:03:19 2015
@@ -1638,9 +1638,9 @@ llvm::DIType *CGDebugInfo::CreateType(co
 
 llvm::DIModule *
 CGDebugInfo::getOrCreateModuleRef(ExternalASTSource::ASTSourceDescriptor Mod) {
-  auto it = ModuleRefCache.find(Mod.Signature);
-  if (it != ModuleRefCache.end())
-    return it->second;
+  auto &ModRef = ModuleRefCache[Mod.Signature];
+  if (ModRef)
+    return cast<llvm::DIModule>(ModRef);
 
   // Macro definitions that were defined with "-D" on the command line.
   SmallString<128> ConfigMacros;
@@ -1669,12 +1669,12 @@ CGDebugInfo::getOrCreateModuleRef(Extern
       TheCU->getSourceLanguage(), internString(Mod.ModuleName),
       internString(Mod.Path), TheCU->getProducer(), true, StringRef(), 0,
       internString(Mod.ASTFile), llvm::DIBuilder::FullDebug, Mod.Signature);
-  llvm::DIModule *ModuleRef =
+  llvm::DIModule *M =
       DIB.createModule(CU, Mod.ModuleName, ConfigMacros, internString(Mod.Path),
                        internString(CGM.getHeaderSearchOpts().Sysroot));
   DIB.finalize();
-  ModuleRefCache.insert(std::make_pair(Mod.Signature, ModuleRef));
-  return ModuleRef;
+  ModRef.reset(M);
+  return M;
 }
 
 llvm::DIType *CGDebugInfo::CreateTypeDefinition(const ObjCInterfaceType *Ty,

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=247368&r1=247367&r2=247368&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Thu Sep 10 20:03:19 2015
@@ -84,7 +84,7 @@ class CGDebugInfo {
   llvm::SmallVector<ObjCInterfaceCacheEntry, 32> ObjCInterfaceCache;
 
   /// Cache of references to AST files such as PCHs or modules.
-  llvm::DenseMap<uint64_t, llvm::DIModule *> ModuleRefCache;
+  llvm::DenseMap<uint64_t, llvm::TrackingMDRef> ModuleRefCache;
 
   /// List of interfaces we want to keep even if orphaned.
   std::vector<void *> RetainedTypes;




More information about the cfe-commits mailing list