Set function entry count as 0 if sample profile is not found for the function.
authorDehao Chen <dehao@google.com>
Mon, 22 Feb 2016 22:46:21 +0000 (22:46 +0000)
committerDehao Chen <dehao@google.com>
Mon, 22 Feb 2016 22:46:21 +0000 (22:46 +0000)
Summary: This change makes the sample profile's behavior consistent with instr profile.

Reviewers: davidxl, eraman, dnovillo

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D17522

llvm-svn: 261587

llvm/lib/Transforms/IPO/SampleProfile.cpp
llvm/test/Transforms/SampleProfile/entry_counts.ll

index 9fb6fac..b863666 100644 (file)
@@ -1257,6 +1257,7 @@ bool SampleProfileLoader::runOnModule(Module &M) {
 }
 
 bool SampleProfileLoader::runOnFunction(Function &F) {
+  F.setEntryCount(0);
   Samples = Reader->getSamplesFor(F);
   if (!Samples->empty())
     return emitAnnotations(F);
index 50cd575..6d1d431 100644 (file)
@@ -8,6 +8,13 @@ entry:
   ret void, !dbg !9
 }
 
+; This function does not have profile, check if function_entry_count is 0
+; CHECK: {{.*}} = !{!"function_entry_count", i64 0}
+define void @no_profile() {
+entry:
+  ret void
+}
+
 !llvm.dbg.cu = !{!0}
 !llvm.module.flags = !{!6, !7}
 !llvm.ident = !{!8}