Attach profile summary information to Module.
authorEaswaran Raman <eraman@google.com>
Thu, 24 Mar 2016 21:32:25 +0000 (21:32 +0000)
committerEaswaran Raman <eraman@google.com>
Thu, 24 Mar 2016 21:32:25 +0000 (21:32 +0000)
Differential Revision: http://reviews.llvm.org/D18289

llvm-svn: 264342

clang/lib/CodeGen/CodeGenModule.cpp
clang/test/Profile/Inputs/profile-summary.proftext [new file with mode: 0644]
clang/test/Profile/profile-summary.c [new file with mode: 0644]

index 73cf47c..42dc811 100644 (file)
@@ -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 (file)
index 0000000..c744f7a
--- /dev/null
@@ -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 (file)
index 0000000..422e078
--- /dev/null
@@ -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]+}}}