<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 20, 2017 at 4:19 PM Lang Hames via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">lhames added a comment.<br>
<br>
> The virtual call could be removed, perhaps, by having the base class hold a non-static member void*...<br>
<br>
Oh that's clever. I hadn't thought of that. There is a space trade-off though as it would require one char per RTTI object (in addition to the current requirement of one BSS char per class).<br></blockquote><div><br>Yeah, totally a space tradeoff for every instance of such classes (& it'd be one word - a pointer, not just a char, unfortunately :/).<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">My current thinking is that open hierarchies are primarily (perhaps only?) useful for types that use virtual methods already, </blockquote><div><br></div><div>Makes sense.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">and RTTI calls are likely to be rare / non-performance-sensitive for such types.</blockquote><div><br>Not sure if that follows, but maybe.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> If it were accepted, my advice was going to be "Use the new system if you know you need an open hierarchy, or you know you don't care about performance". E.g. libObject. (If it sounds surprising that Object should be an open hierarchy, consider Apple's text-based API files: We want them to present as symbolic files, but they're unlike any in-tree format. It seems reasonable that other users may have similarly quirky formats that they still might want to work with llvm-nm, etc.).<br></blockquote><div><br>Might be worth having the libObject change, if that's something you need, in either this change or a parallel review for demonstrative purposes. I'd probably like one actual use/need nearby this change to motivate it, so it's not dead code, etc.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D39111" rel="noreferrer" target="_blank">https://reviews.llvm.org/D39111</a><br>
<br>
<br>
<br>
</blockquote></div></div>