[PATCH] D53887: [HotColdSplitting] [WIP] Outline more than once per function

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 30 13:26:12 PDT 2018


vsk created this revision.
vsk added reviewers: sebpop, hiraditya, tejohnson, junbuml.

Disclaimer: This is a work-in-progress patch. It's missing better
testing and performance analysis. It uses a cheap scheme to detect and
avoid region overlap which could be improved.

Testing so far: LNT results on X86 are clean. Across test-suite +
externals, we outline 134KB pre-patch, and 352KB post-patch (~2.6x). The
file 483.xalancbmk/src/Constants.cpp stands out as an extreme case where
we're able to outline over 100 times in some functions.

Algorithm: Identify maximal cold regions up-front and put them in a
worklist. If a candidate region overlaps with another, discard it (this
could be improved). While the worklist is full, remove a single-entry
sub-region from the last region and attempt to outline it. By the
non-overlap property, this should not invalidate parts of the domtree
pertaining to other outlining regions.

Depends on: https://reviews.llvm.org/D53835


https://reviews.llvm.org/D53887

Files:
  llvm/lib/Transforms/IPO/HotColdSplitting.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53887.171773.patch
Type: text/x-patch
Size: 16824 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181030/9f931b0e/attachment.bin>


More information about the llvm-commits mailing list