diff options
author | Diego Novillo <dnovillo@google.com> | 2015-05-13 17:04:29 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@google.com> | 2015-05-13 17:04:29 +0000 |
commit | ffc84e378a7c251b4c82733b5a3b30f48291aec7 (patch) | |
tree | 2330fc2a714a0b0dd459f2e3ef19341781d3016f /llvm/lib/Transforms | |
parent | 732e2681c710147e95b390db06bf72ded13efb1e (diff) | |
download | bcm5719-llvm-ffc84e378a7c251b4c82733b5a3b30f48291aec7.tar.gz bcm5719-llvm-ffc84e378a7c251b4c82733b5a3b30f48291aec7.zip |
Add function entry counts from sample profiles.
This patch uses the new function profile metadata "function_entry_count"
to annotate entry counts from sample profiles.
In a sampling profile, the total samples collected at the function entry
are an approximation for the number of times that function was invoked.
llvm-svn: 237265
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/SampleProfile.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/SampleProfile.cpp b/llvm/lib/Transforms/Scalar/SampleProfile.cpp index 594a7beb2e3..3480cd49912 100644 --- a/llvm/lib/Transforms/Scalar/SampleProfile.cpp +++ b/llvm/lib/Transforms/Scalar/SampleProfile.cpp @@ -580,6 +580,10 @@ void SampleProfileLoader::propagateWeights(Function &F) { bool Changed = true; unsigned i = 0; + // Add an entry count to the function using the samples gathered + // at the function entry. + F.setEntryCount(Samples->getHeadSamples()); + // Before propagation starts, build, for each block, a list of // unique predecessors and successors. This is necessary to handle // identical edges in multiway branches. Since we visit all blocks and all |