summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorDehao Chen <dehao@google.com>2016-10-18 20:42:47 +0000
committerDehao Chen <dehao@google.com>2016-10-18 20:42:47 +0000
commit302b69c9406b1c690db2e8faaf0a2211dfd46879 (patch)
tree580f38a5f827e7b9ee3b540edfc028671421347c /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent4dd6c68d67c25af4617238c1308f6aa6caa6e82c (diff)
downloadbcm5719-llvm-302b69c9406b1c690db2e8faaf0a2211dfd46879.tar.gz
bcm5719-llvm-302b69c9406b1c690db2e8faaf0a2211dfd46879.zip
Use profile info to set function section prefix to group hot/cold functions.
Summary: The original implementation is in r261607, which was reverted in r269726 to accomendate the ProfileSummaryInfo analysis pass. The new implementation: 1. add a new metadata for function section prefix 2. query against ProfileSummaryInfo in CGP to set the correct section prefix for each function 3. output the section prefix set by CGP Reviewers: davidxl, eraman Subscribers: vsk, llvm-commits Differential Revision: https://reviews.llvm.org/D24989 llvm-svn: 284533
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
index edaa778a605..91cee337c98 100644
--- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -296,8 +296,12 @@ selectELFSectionForGlobal(MCContext &Ctx, const GlobalValue *GV,
} else {
Name = getSectionPrefixForGlobal(Kind);
}
- // FIXME: Extend the section prefix to include hotness catagories such as .hot
- // or .unlikely for functions.
+
+ if (const Function *F = dyn_cast<Function>(GV)) {
+ const auto &OptionalPrefix = F->getSectionPrefix();
+ if (OptionalPrefix)
+ Name += *OptionalPrefix;
+ }
if (EmitUniqueSection && UniqueSectionNames) {
Name.push_back('.');
OpenPOWER on IntegriCloud