[PATCH] D65376: Randomly outline code for cold regions

Aditya Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 1 09:53:49 PDT 2019


hiraditya added a comment.

In D65376#1607799 <https://reviews.llvm.org/D65376#1607799>, @vsk wrote:

> I think that this is probably too risky. I've seen that splitting out the wrong block can introduce major performance regressions (up to and including stack overflow).
>
> As a future direction for code reordering in llvm, a pass that operates on the machine instruction level may have more promise. At that level, there's a reduced/eliminated code size penalty and landingpads can be moved easily. There's less pass ordering flexibility, but experiments seem to show that late splitting works better anyway.


Agreed, this is mostly intended for specific workloads where wrong out-ling doesn't incur major overhead. e.g., user facing applications, applications where initial load time is a major issue etc.  We can keep this disabled by default so that only interested parties can use it. For some cases it can provide major startup improvements.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65376/new/

https://reviews.llvm.org/D65376





More information about the llvm-commits mailing list