<div dir="ltr">Ah I messed something up locally, removing the regular LTO run causes undefined hidden symbol errors for vtables.<div>The `runRegularLTO()` name is confusing though, it apparently sets up some things necessary for ThinLTO.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 24, 2021 at 11:58 AM Arthur Eubanks <<a href="mailto:aeubanks@google.com">aeubanks@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>While debugging a ThinLTO issue, I noticed that passes were running more often than I expected. This is being invoked pretty normally, something like</div><div><font face="monospace">$ clang++ -fuse-ld=lld -flto=thin</font></div><div><br></div><div>Looks like at [1] we try to first run regular LTO before running ThinLTO. Removing the first line makes the link go from 208s to 115s. Is this expected behavior?</div><div><br></div>[1]: <a href="https://github.com/llvm/llvm-project/blob/a64ebb8637277998f77e55d335faca6fdcf5859b/llvm/lib/LTO/LTO.cpp#L1033" target="_blank">https://github.com/llvm/llvm-project/blob/a64ebb8637277998f77e55d335faca6fdcf5859b/llvm/lib/LTO/LTO.cpp#L1033</a><br></div>
</blockquote></div>