<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>