diff options
author | Dehao Chen <dehao@google.com> | 2016-10-18 20:42:47 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2016-10-18 20:42:47 +0000 |
commit | 977fc82cacbbf38008a5b2f86b2b10f37b820965 (patch) | |
tree | 2f756732e8e00232bd5385fbeb3b46b2d19e51da /lib/IR/MDBuilder.cpp | |
parent | be23217b8d792cd265ece59534776e9e4da6d9e6 (diff) |
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284533 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/IR/MDBuilder.cpp')
-rw-r--r-- | lib/IR/MDBuilder.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/IR/MDBuilder.cpp b/lib/IR/MDBuilder.cpp index a5a4cd06db0..f4bfd599215 100644 --- a/lib/IR/MDBuilder.cpp +++ b/lib/IR/MDBuilder.cpp @@ -63,6 +63,12 @@ MDNode *MDBuilder::createFunctionEntryCount(uint64_t Count) { createConstant(ConstantInt::get(Int64Ty, Count))}); } +MDNode *MDBuilder::createFunctionSectionPrefix(StringRef Prefix) { + return MDNode::get(Context, + {createString("function_section_prefix"), + createString(Prefix)}); +} + MDNode *MDBuilder::createRange(const APInt &Lo, const APInt &Hi) { assert(Lo.getBitWidth() == Hi.getBitWidth() && "Mismatched bitwidths!"); |