<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 30, 2015 at 11:01 AM, Adrian Prantl <span dir="ltr"><<a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: adrian<br>
Date: Tue Jun 30 13:01:05 2015<br>
New Revision: 241088<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D241088-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=_hVxesHb2LaR0qhLoxj5Wk_6L1uIjhiOXDhCzUA6eE8&s=HeT98cMkoazDnSCBlSK2SOYHXIpZhIy6sp0KGmbJgCE&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=241088&view=rev</a><br>
Log:<br>
Use an early exit to improve readability. (NFC)<br>
<br>
Modified:<br>
    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_CodeGen_CGDebugInfo.cpp-3Frev-3D241088-26r1-3D241087-26r2-3D241088-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=_hVxesHb2LaR0qhLoxj5Wk_6L1uIjhiOXDhCzUA6eE8&s=80txY8MR7iMH0lX73wkI_idYqiOVYFdTLiPm1SuMswc&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=241088&r1=241087&r2=241088&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Tue Jun 30 13:01:05 2015<br>
@@ -1665,44 +1665,42 @@ llvm::DIType *CGDebugInfo::CreateType(co<br>
<br>
 llvm::DIModule *<br>
 CGDebugInfo::getOrCreateModuleRef(ExternalASTSource::ASTSourceDescriptor Mod) {<br>
-  llvm::DIModule *ModuleRef = nullptr;<br>
   auto it = ModuleRefCache.find(Mod.Signature);<br></blockquote><div><br></div><div>Oh, and, assuming this function isn't recursive (ie: the process of building the DIModule doesn't cause other DIModules to be created/inserted into ModuleRefCache) you can avoid doing two map lookups:<br><br>  auto *&ModuleRef = ModuleRefCache[Mod.Signature];<br>  if (ModuleRef)<br>    return ModuleRef<br>  ...<br>  ModuleRef = ...;<br>  return ModuleRef;<br><br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   if (it != ModuleRefCache.end())<br>
-    ModuleRef = it->second;<br>
-  else {<br>
-    // Macro definitions that were defined with "-D" on the command line.<br>
-    SmallString<128> ConfigMacros;<br>
-    {<br>
-      llvm::raw_svector_ostream OS(ConfigMacros);<br>
-      const auto &PPOpts = CGM.getPreprocessorOpts();<br>
-      unsigned I = 0;<br>
-      // Translate the macro definitions back into a commmand line.<br>
-      for (auto &M : PPOpts.Macros) {<br>
-        if (++I > 1)<br>
-          OS << " ";<br>
-        const std::string &Macro = M.first;<br>
-        bool Undef = M.second;<br>
-        OS << "\"-" << (Undef ? 'U' : 'D');<br>
-        for (char c : Macro)<br>
-          switch (c) {<br>
-          case '\\' : OS << "\\\\"; break;<br>
-          case '"'  : OS << "\\\""; break;<br>
-          default: OS << c;<br>
-          }<br>
-        OS << '\"';<br>
-      }<br>
+    return it->second;<br>
+<br>
+  // Macro definitions that were defined with "-D" on the command line.<br>
+  SmallString<128> ConfigMacros;<br>
+  {<br>
+    llvm::raw_svector_ostream OS(ConfigMacros);<br>
+    const auto &PPOpts = CGM.getPreprocessorOpts();<br>
+    unsigned I = 0;<br>
+    // Translate the macro definitions back into a commmand line.<br>
+    for (auto &M : PPOpts.Macros) {<br>
+      if (++I > 1)<br>
+        OS << " ";<br>
+      const std::string &Macro = M.first;<br>
+      bool Undef = M.second;<br>
+      OS << "\"-" << (Undef ? 'U' : 'D');<br>
+      for (char c : Macro)<br>
+        switch (c) {<br>
+        case '\\' : OS << "\\\\"; break;<br>
+        case '"'  : OS << "\\\""; break;<br>
+        default: OS << c;<br>
+        }<br>
+      OS << '\"';<br>
     }<br>
-    llvm::DIBuilder DIB(CGM.getModule());<br>
-    auto *CU = DIB.createCompileUnit(<br>
-        TheCU->getSourceLanguage(), internString(Mod.ModuleName),<br>
-        internString(Mod.Path), TheCU->getProducer(), true, StringRef(), 0,<br>
-        internString(Mod.ASTFile), llvm::DIBuilder::FullDebug, Mod.Signature);<br>
-    ModuleRef = DIB.createModule(<br>
-        CU, Mod.ModuleName, ConfigMacros, internString(Mod.Path),<br>
-        internString(CGM.getHeaderSearchOpts().Sysroot));<br>
-    DIB.finalize();<br>
-    ModuleRefCache.insert(std::make_pair(Mod.Signature, ModuleRef));<br>
   }<br>
+  llvm::DIBuilder DIB(CGM.getModule());<br>
+  auto *CU = DIB.createCompileUnit(<br>
+      TheCU->getSourceLanguage(), internString(Mod.ModuleName),<br>
+      internString(Mod.Path), TheCU->getProducer(), true, StringRef(), 0,<br>
+      internString(Mod.ASTFile), llvm::DIBuilder::FullDebug, Mod.Signature);<br>
+  llvm::DIModule *ModuleRef =<br>
+      DIB.createModule(CU, Mod.ModuleName, ConfigMacros, internString(Mod.Path),<br>
+                       internString(CGM.getHeaderSearchOpts().Sysroot));<br>
+  DIB.finalize();<br>
+  ModuleRefCache.insert(std::make_pair(Mod.Signature, ModuleRef));<br>
   return ModuleRef;<br>
 }<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div>