[hot-cold-split] Name split functions with ".cold" suffix
authorTeresa Johnson <tejohnson@google.com>
Wed, 24 Oct 2018 18:53:47 +0000 (18:53 +0000)
committerTeresa Johnson <tejohnson@google.com>
Wed, 24 Oct 2018 18:53:47 +0000 (18:53 +0000)
commitc8dba682bba9c80654d7a10331f718da9b7b0475
tree319803db7b4c42403065259031055708cb8362cf
parentb40e0520e1b0c401c38aee194c0f7ef6f7849e98
[hot-cold-split] Name split functions with ".cold" suffix

Summary:
The current default of appending "_"+entry block label to the new
extracted cold function breaks demangling. Change the deliminator from
"_" to "." to enable demangling. Because the header block label will
be empty for release compile code, use "extracted" after the "." when
the label is empty.

Additionally, add a mechanism for the client to pass in an alternate
suffix applied after the ".", and have the hot cold split pass use
"cold."+Count, where the Count is currently 1 but can be used to
uniquely number multiple cold functions split out from the same function
with D53588.

Reviewers: sebpop, hiraditya

Subscribers: llvm-commits, erik.pilkington

Differential Revision: https://reviews.llvm.org/D53534

llvm-svn: 345178
35 files changed:
llvm/include/llvm/Transforms/Utils/CodeExtractor.h
llvm/lib/Transforms/IPO/HotColdSplitting.cpp
llvm/lib/Transforms/Utils/CodeExtractor.cpp
llvm/test/Transforms/BlockExtractor/extract-blocks.ll
llvm/test/Transforms/CodeExtractor/ExtractedFnEntryCount.ll
llvm/test/Transforms/CodeExtractor/PartialInlineAnd.ll
llvm/test/Transforms/CodeExtractor/PartialInlineAndOr.ll
llvm/test/Transforms/CodeExtractor/PartialInlineAttributes.ll
llvm/test/Transforms/CodeExtractor/PartialInlineDebug.ll
llvm/test/Transforms/CodeExtractor/PartialInlineEntryUpdate.ll
llvm/test/Transforms/CodeExtractor/PartialInlineInvokeProducesOutVal.ll
llvm/test/Transforms/CodeExtractor/PartialInlineLiveAcross.ll
llvm/test/Transforms/CodeExtractor/PartialInlineNoLiveOut.ll
llvm/test/Transforms/CodeExtractor/PartialInlineOr.ll
llvm/test/Transforms/CodeExtractor/PartialInlineOrAnd.ll
llvm/test/Transforms/CodeExtractor/PartialInlinePGOMultiRegion.ll
llvm/test/Transforms/CodeExtractor/PartialInlinePGORegion.ll
llvm/test/Transforms/CodeExtractor/PartialInlineVarArg.ll
llvm/test/Transforms/CodeExtractor/PartialInlineVarArgsDebug.ll
llvm/test/Transforms/CodeExtractor/SingleCondition.ll
llvm/test/Transforms/CodeExtractor/X86/InheritTargetAttributes.ll
llvm/test/Transforms/CodeExtractor/cost.ll
llvm/test/Transforms/CodeExtractor/cost_meta.ll
llvm/test/Transforms/CodeExtractor/inline_eh.ll
llvm/test/Transforms/CodeExtractor/inline_eh_1.ll
llvm/test/Transforms/CodeExtractor/live_shrink.ll
llvm/test/Transforms/CodeExtractor/live_shrink_gep.ll
llvm/test/Transforms/CodeExtractor/live_shrink_hoist.ll
llvm/test/Transforms/CodeExtractor/live_shrink_multiple.ll
llvm/test/Transforms/CodeExtractor/unreachable-block.ll
llvm/test/Transforms/HotColdSplit/minsize.ll
llvm/test/Transforms/HotColdSplit/split-cold-2.ll
llvm/test/Transforms/HotColdSplit/split-out-dbg-val-of-arg.ll
llvm/test/tools/llvm-extract/extract-block.ll
llvm/test/tools/llvm-extract/extract-multiple-blocks.ll