Change error to warning when a profile cannot be found.
authorDiego Novillo <dnovillo@google.com>
Wed, 22 Oct 2014 13:36:35 +0000 (13:36 +0000)
committerDiego Novillo <dnovillo@google.com>
Wed, 22 Oct 2014 13:36:35 +0000 (13:36 +0000)
When the profile for a function cannot be applied, we use to emit an
error. This seems extreme. The compiler can continue, it's just that the
optimization opportunities won't include profile information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220386 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/SampleProfile.cpp
test/Transforms/SampleProfile/syntax.ll

index 211e5920ec35d4792e927a8ab3a640c7c02e6825..0749265d2a87d4375f9819232461d1dcff59add7 100644 (file)
@@ -673,7 +673,9 @@ unsigned SampleProfileLoader::getFunctionLoc(Function &F) {
   // If could not find the start of \p F, emit a diagnostic to inform the user
   // about the missed opportunity.
   F.getContext().diagnose(DiagnosticInfoSampleProfile(
-      "No debug information found in function " + F.getName()));
+      "No debug information found in function " + F.getName() +
+          ": Function profile not used",
+      DS_Warning));
   return 0;
 }
 
index 53c65f44239c320dc865d53fc08d2768c8327c59..f807db9d524d1d6a29ff64b1e32724476ed9d3d4 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: not opt < %s -sample-profile -sample-profile-file=%S/Inputs/syntax.prof 2>&1 | FileCheck -check-prefix=NO-DEBUG %s
+; RUN: opt < %s -sample-profile -sample-profile-file=%S/Inputs/syntax.prof 2>&1 | FileCheck -check-prefix=NO-DEBUG %s
 ; RUN: not opt < %s -sample-profile -sample-profile-file=missing.prof 2>&1 | FileCheck -check-prefix=MISSING-FILE %s
 ; RUN: not opt < %s -sample-profile -sample-profile-file=%S/Inputs/bad_fn_header.prof 2>&1 | FileCheck -check-prefix=BAD-FN-HEADER %s
 ; RUN: not opt < %s -sample-profile -sample-profile-file=%S/Inputs/bad_sample_line.prof 2>&1 | FileCheck -check-prefix=BAD-SAMPLE-LINE %s
@@ -11,7 +11,7 @@ define void @empty() {
 entry:
   ret void
 }
-; NO-DEBUG: error: No debug information found in function empty
+; NO-DEBUG: warning: No debug information found in function empty: Function profile not used
 ; MISSING-FILE: error: missing.prof:
 ; BAD-FN-HEADER: error: {{.*}}bad_fn_header.prof:1: Expected 'mangled_name:NUM:NUM', found 3empty:100:BAD
 ; BAD-SAMPLE-LINE: error: {{.*}}bad_sample_line.prof:3: Expected 'NUM[.NUM]: NUM[ mangled_name:NUM]*', found 1: BAD