<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jun 28, 2014 at 10:25 PM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Now with a compressed patch. Sorry for the duplication.<br>
<br>
Working on another patch I noticed quiet a bit of code in lib/MC that<br>
uses MC types, but is not used by MC itself or by any MC clients other<br>
than llvm-objdump.<br>
<br>
As an experiment to see how big this was, I created a MC2 library<br>
(patch attached).  The results are interesting. In a Release+Asserts<br>
shared build I get<br>
<br>
811464 lib/libLLVMMC.so<br>
272296 lib/libLLVMMCParser.so<br>
152744 lib/libLLVMMC2.so<br>
61248  lib/libLLVMMCJIT.so<br>
22008  lib/libLLVMMCDisassembler.so<br>
<br>
Note how the new library is the third largest.<br>
<br>
Now, what is this code? From the the commit messages it looks like it<br>
is for "fancy" disassembly with CFG reconstruction. Is it<br>
complementary to the existing MCDisassembler library? Should the code<br>
be moved there instead? Should we have a MCDisassemblerCFG library?<br>
<br>
Splitting this library would also make it trivial to remove the MC -><br>
Object dependency.<br></blockquote><div><br></div><div>Splitting it off (at least into MCDisassembler) sounds like a good idea, Rafael. </div><div><br></div><div>[I wonder if this will help making a custom-built llc that doesn't do disassembly smaller] </div>

</div><br></div><div class="gmail_extra">Eli</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>