[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