<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Sep 25, 2012, at 5:08 PM, Jan Voung <<a href="mailto:jvoung@chromium.org">jvoung@chromium.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi all,</div><div><br></div><div>I've been looking into how to make llvm bitcode files smaller.  There is one simple change that appears to shrink linked bitcode files by about 15%.  See this spreadsheet for some rough data:</div>
<div><br></div><div><a href="https://docs.google.com/spreadsheet/ccc?key=0AjRrJHQc4_bddEtJdjdIek5fMDdIdFFIZldZXzdWa0E">https://docs.google.com/spreadsheet/ccc?key=0AjRrJHQc4_bddEtJdjdIek5fMDdIdFFIZldZXzdWa0E</a><br></div>
<div><br></div><div><br></div><div>The change is in how operand ids are encoded in bitcode files.  Rather than use an "absolute number" given by the ValueEnumerator, which counts up within a function, we can have the id be relative to the current instruction.</div></blockquote><div><br></div><div>Very cool.  This is the "obviously right" way to do it, I'm glad you've implemented it.  It looks like Duncan gave you a lot of feedback already, I'm looking forward to seeing the updated patch.  Thanks for tackling this Jan!</div><div><br></div><div>-Chris</div></div></body></html>