// direct call, so we keep it.
if (Function *Callee = CS.getCalledFunction())
if (Callee->isDeclaration()) {
- ORE.emitOptimizationRemarkAnalysis(
- DEBUG_TYPE, &I, Twine("definition of ") + Callee->getName() +
- " is not available",
- /*Verbose=*/true);
using namespace ore;
ORE.emit(DiagnosticInfoOptimizationRemarkMissed(DEBUG_TYPE,
- "NotInlined", &I)
+ "NoDefinition", &I)
<< NV("Callee", Callee) << " will not be inlined into "
- << NV("Caller", CS.getCaller()) << setIsVerbose());
+ << NV("Caller", CS.getCaller())
+ << " because its definition is unavailable"
+ << setIsVerbose());
continue;
}
; 5 return foo() + bar();
; 6 }
-; CHECK: remark: /tmp/s.c:5:10: foo will not be inlined into baz (hotness: 30)
-; CHECK-NEXT: remark: /tmp/s.c:5:18: bar will not be inlined into baz (hotness: 30)
+; CHECK: remark: /tmp/s.c:5:10: foo will not be inlined into baz because its definition is unavailable (hotness: 30)
+; CHECK-NEXT: remark: /tmp/s.c:5:18: bar will not be inlined into baz because its definition is unavailable (hotness: 30)
; YAML: --- !Missed
; YAML-NEXT: Pass: inline
-; YAML-NEXT: Name: NotInlined
+; YAML-NEXT: Name: NoDefinition
; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 5, Column: 10 }
; YAML-NEXT: Function: baz
; YAML-NEXT: Hotness: 30
; YAML-NEXT: - Callee: foo
; YAML-NEXT: - String: will not be inlined into
; YAML-NEXT: - Caller: baz
+; YAML-NEXT: - String: because its definition is unavailable
; YAML-NEXT: ...
; YAML-NEXT: --- !Missed
; YAML-NEXT: Pass: inline
-; YAML-NEXT: Name: NotInlined
+; YAML-NEXT: Name: NoDefinition
; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 5, Column: 18 }
; YAML-NEXT: Function: baz
; YAML-NEXT: Hotness: 30
; YAML-NEXT: - Callee: bar
; YAML-NEXT: - String: will not be inlined into
; YAML-NEXT: - Caller: baz
+; YAML-NEXT: - String: because its definition is unavailable
; YAML-NEXT: ...
; ModuleID = '/tmp/s.c'
; RUN: -pass-remarks-analysis=inline -pass-remarks-with-hotness -S 2>&1 | \
; RUN: FileCheck -check-prefix=CHECK -check-prefix=HOTNESS %s
-; HOTNESS: definition of fox is not available
-; HOTNESS: fox will not be inlined into bar
-; NO_HOTNESS-NOT: definition of fox is not available
-; NO_HOTNESS-NOT: fox will not be inlined into bar
+; HOTNESS: fox will not be inlined into bar because its definition is unavailable
+; NO_HOTNESS-NOT: fox will not be inlined into bar because its definition is unavailable
; CHECK: foo should always be inlined (cost=always)
; CHECK: foo inlined into bar
; CHECK: foz should never be inlined (cost=never)