<div dir="ltr">LGTM.<div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 26, 2015 at 7:43 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi ruiu,<br>
<br>
This function is actually *very* hot. It is hard to see currently<br>
because the call graph is very recursive, but I'm working to remove that<br>
and when I do this function becomes significantly higher on the profile<br>
(up to 5%!) and so worth avoiding the call overhead.<br>
<br>
No specific perf gain I can measure yet (below the noise), but likely to<br>
have more impact as we stop cluttering the call graph.<br>
<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10788&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=Ns0iH9JJnznSGf4HybKAuILZ9t2mtFl0Erb03UFNtQ4&s=Lt5fMlXMTSvllOB7aFNfNwJB_mhwnFhu-_tSKzdJQsA&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D10788</a><br>
<br>
Files:<br>
  COFF/InputFiles.cpp<br>
  COFF/InputFiles.h<br>
<br>
Index: COFF/InputFiles.cpp<br>
===================================================================<br>
--- COFF/InputFiles.cpp<br>
+++ COFF/InputFiles.cpp<br>
@@ -114,10 +114,6 @@<br>
   return initializeSymbols();<br>
 }<br>
<br>
-SymbolBody *ObjectFile::getSymbolBody(uint32_t SymbolIndex) {<br>
-  return SparseSymbolBodies[SymbolIndex]->getReplacement();<br>
-}<br>
-<br>
 std::error_code ObjectFile::initializeChunks() {<br>
   uint32_t NumSections = COFFObj->getNumberOfSections();<br>
   Chunks.reserve(NumSections);<br>
Index: COFF/InputFiles.h<br>
===================================================================<br>
--- COFF/InputFiles.h<br>
+++ COFF/InputFiles.h<br>
@@ -101,7 +101,9 @@<br>
<br>
   // Returns a SymbolBody object for the SymbolIndex'th symbol in the<br>
   // underlying object file.<br>
-  SymbolBody *getSymbolBody(uint32_t SymbolIndex);<br>
+  SymbolBody *getSymbolBody(uint32_t SymbolIndex) {<br>
+    return SparseSymbolBodies[SymbolIndex]->getReplacement();<br>
+  }<br>
<br>
   // Returns the underying COFF file.<br>
   COFFObjectFile *getCOFFObj() { return COFFObj.get(); }<br>
<br>
EMAIL PREFERENCES<br>
  <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_settings_panel_emailpreferences_&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=Ns0iH9JJnznSGf4HybKAuILZ9t2mtFl0Erb03UFNtQ4&s=ROFCTyFmkMA6RUWr25x0vc_xnXfDOAtqJtUytL3SjQk&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/settings/panel/emailpreferences/</a><br>
</blockquote></div><br></div>