]> granicus.if.org Git - llvm/commit
Use profile summary to disable peeling for huge working sets
authorTeresa Johnson <tejohnson@google.com>
Thu, 3 Aug 2017 23:42:58 +0000 (23:42 +0000)
committerTeresa Johnson <tejohnson@google.com>
Thu, 3 Aug 2017 23:42:58 +0000 (23:42 +0000)
commitdad922aba23d1204bf921c66e292b809a90a980c
tree16415d56506dc2cad4b753e3d2cfc69ca0f163b5
parent0856e7acd5f555a94c34c502f1bab83af15a12f4
Use profile summary to disable peeling for huge working sets

Summary:
Detect when the working set size of a profiled application is huge,
by comparing the number of counts required to reach the hot percentile
in the profile summary to a large threshold*.

When the working set size is determined to be huge, disable peeling
to avoid bloating the working set further.

*Note that the selected threshold (15K) is significantly larger than the
largest working set value in SPEC cpu2006 (which is gcc at around 11K).

Reviewers: davidxl

Subscribers: mehdi_amini, mzolotukhin, eraman, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310005 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/ProfileSummaryInfo.h
lib/Analysis/ProfileSummaryInfo.cpp
lib/Transforms/Scalar/LoopUnrollPass.cpp
test/Other/new-pm-defaults.ll
test/Other/new-pm-thinlto-defaults.ll
test/Transforms/LoopUnroll/peel-loop-pgo.ll