diff options
author | Easwaran Raman <eraman@google.com> | 2016-03-24 21:32:25 +0000 |
---|---|---|
committer | Easwaran Raman <eraman@google.com> | 2016-03-24 21:32:25 +0000 |
commit | 8160812e26e71c563b63d17768ab177856bf4dba (patch) | |
tree | 8ad7d589043d69bac3df565a841566891d458dee | |
parent | 699d96535d26fd0ad5effff54634c02f89dca68c (diff) | |
download | bcm5719-llvm-8160812e26e71c563b63d17768ab177856bf4dba.tar.gz bcm5719-llvm-8160812e26e71c563b63d17768ab177856bf4dba.zip |
Attach profile summary information to Module.
Differential Revision: http://reviews.llvm.org/D18289
llvm-svn: 264342
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 1 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/profile-summary.proftext | 26 | ||||
-rw-r--r-- | clang/test/Profile/profile-summary.c | 25 |
3 files changed, 52 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 73cf47c69ab..42dc8119947 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -396,6 +396,7 @@ void CodeGenModule::Release() { AddGlobalCtor(OpenMPRegistrationFunction, 0); if (PGOReader) { getModule().setMaximumFunctionCount(PGOReader->getMaximumFunctionCount()); + getModule().setProfileSummary(PGOReader->getSummary().getMD(VMContext)); if (PGOStats.hasDiagnostics()) PGOStats.reportDiagnostics(getDiags(), getCodeGenOpts().MainFileName); } diff --git a/clang/test/Profile/Inputs/profile-summary.proftext b/clang/test/Profile/Inputs/profile-summary.proftext new file mode 100644 index 00000000000..c744f7af9d8 --- /dev/null +++ b/clang/test/Profile/Inputs/profile-summary.proftext @@ -0,0 +1,26 @@ +begin +# Func Hash: +10 +# Num Counters: +2 +# Counter Values: +1 +0 + +main +# Func Hash: +0 +# Num Counters: +1 +# Counter Values: +1 + +end +# Func Hash: +10 +# Num Counters: +2 +# Counter Values: +2 +2 + diff --git a/clang/test/Profile/profile-summary.c b/clang/test/Profile/profile-summary.c new file mode 100644 index 00000000000..422e078e368 --- /dev/null +++ b/clang/test/Profile/profile-summary.c @@ -0,0 +1,25 @@ +// Test that profile summary is set correctly. + +// RUN: llvm-profdata merge %S/Inputs/max-function-count.proftext -o %t.profdata +// RUN: %clang %s -o - -mllvm -disable-llvm-optzns -emit-llvm -S -fprofile-instr-use=%t.profdata | FileCheck %s +// +int begin(int i) { + if (i) + return 0; + return 1; +} + +int end(int i) { + if (i) + return 0; + return 1; +} + +int main(int argc, const char *argv[]) { + begin(0); + end(1); + end(1); + return 0; +} +// CHECK: {{![0-9]+}} = !{i32 1, !"ProfileSummary", {{![0-9]+}}} +// CHECK: {{![0-9]+}} = !{!"DetailedSummary", {{![0-9]+}}} |