<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote><div><br></div></div></div><div>LVI is one of those analyses with quadratic runtime, but has a cutoff to its search depth so that it is technically not quadratic. So increased inlining could easily exacerbate it more than non-"quadratic" passes. (increased inlining would also cause a general slowdown too).</div><div><br></div></div></div></div></blockquote><div><br></div><div>LVI is only quadratic because of the way we've built it (it's actually worse than quadratic,but let's just normalize to "quadratic").</div><div>Non-lazy versions are not quadratic, and you could likely build an incremental lazy version that is also not quadratic in practice.<br></div><div>At some point, none of this will change unless people hold the line somewhere. Compilers usually get slower 0.1% at a time, not in huge leaps and bounds.</div><div>Without people saying "If we really want to get this case, in a thing not really designed to get that case sanely, we need to stop and think about it", it doesn't get thought about.</div><div><br></div><div>Obviously, you can go too far into that extreme, but i think we are still too far on one side of that one (at least, in most places in LLVM)<br></div></div></div></div>