FWIW, the result of my investigation led to a new aspect of an existing bug: <a href="http://llvm.org/PR13392">http://llvm.org/PR13392</a><div><br></div><div>This is responsible for a very sizable chunk of the compile time due to slowing down extremely fundamental analysis operations in LLVM -- computing the properties of specific bits in integer values. As these values become increasingly large (especially larger than a native integer type), the LLVM optimization and analyses become quite slow.</div>
<div><br></div><div>I've dug fairly deeply into this particular issue and mailed out a patch to address it. I'm hopeful we'll get it addressed quickly. Once fixed, I'm seeing between 20% and 50% compile time reductions on the test case you provided, so I think it will address your concerns. Feel free to add yourself to the bug's CC list if you want to know when it is addressed.</div>
<div><br></div><div>If you'd like to understand the inner details of what went wrong, I have a write up attached to the patch I posted[1], but it may not be at all obvious how all these things are related. This one was pretty nasty to untangle.</div>
<div><br></div><div>Thanks again for the report!</div><div>-Chandler</div><div><br></div><div>[1]: <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120716/146864.html">http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120716/146864.html</a></div>