<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 15, 2015 at 8:26 AM, Xinliang David Li <span dir="ltr"><<a href="mailto:xinliangli@gmail.com" target="_blank">xinliangli@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">There is no need for emitting the full symtab. I checked the overhead with a huge internal C++ source. The overhead of symtab + str table compared with byte code with debug is about 3%.<div><br></div><div>More importantly, it is also possible to use the symtab also for index/summary purpose, which makes the space usage completely 'unwasted'. That gets into the details which will follow when patches are in.</div></div></blockquote><div><br>That direction ends up more heavily leaning on this model, though. Keeping all the LLVM stuff (including summary info) in the IR means that on platforms with bitcode-aware tools (like, by the sounds of it, OSX with ld being bitcode aware, etc) we can support a nice bitcode-only solution. Wrapping that in native object files for backwards compatibility for a few tools seems OK, but the more features we build on top of that foundation the harder it is to get out of that business when/where the backwards compatibility isn't needed.<br><br>Also, leaving the wrapping as a separate backwards compatibility thing would, I imagine, ease testing by making more parts testable without the added complexity of the wrapping.<br><br>It'd be useful to see the sorts of build system scenarios that use these native object tools so we can look at what we can/can't reasonably support. (I assume tools aren't generally expecting a symtab where the symbols aren't actually in the .text section - I don't know what/if any/how some of these tools might do the wrong thing when presented with such info - but this is all outside of my depth/area, so don't worry about explaining it to me, but it seems other people care about what we're supporting here, at least)<br><br><br></div></div></div></div>