OSDN Git Service

[PGO] Function section hotness prefix should look at all blocks
authorTeresa Johnson <tejohnson@google.com>
Wed, 20 Dec 2017 17:53:10 +0000 (17:53 +0000)
committerTeresa Johnson <tejohnson@google.com>
Wed, 20 Dec 2017 17:53:10 +0000 (17:53 +0000)
commit9274a9b246ca8970c9e1880756a4de8f8244540e
treea88c484fb80088f277165ad2f208809bbe63b859
parentd49ac948c39f26ce8e3a8c862f54a573779b44b5
[PGO] Function section hotness prefix should look at all blocks

Summary:
The function section prefix for PGO based layout (e.g. hot/unlikely)
should look at the hotness of all blocks not just the entry BB.
A function with a cold entry but a very hot loop should be placed in the
hot section, for example, so that it is located close to other hot
functions it may call. For SamplePGO it was already looking at the
branch weights on calls, and I made that code conditional on whether
this is SamplePGO since it was essentially a noop for instrumentation
PGO anyway.

Reviewers: davidxl

Subscribers: eraman, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321197 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/ProfileSummaryInfo.h
lib/Analysis/ProfileSummaryInfo.cpp
lib/CodeGen/CodeGenPrepare.cpp
test/Transforms/CodeGenPrepare/section.ll