forked from OSchip/llvm-project
Move verbosity check for remarks to the diag handler
Test needs some slight adjustment because we no longer check the existence of BFI but rather that the actual hotness is set on the remark. If entry_count is not set getBlockProfileCount returns None. llvm-svn: 314874
This commit is contained in:
parent
28c2c22624
commit
f31b1f310c
|
@ -169,10 +169,7 @@ void OptimizationRemarkEmitter::emit(
|
|||
auto *P = &OptDiagBase;
|
||||
*Out << P;
|
||||
}
|
||||
// FIXME: now that IsVerbose is part of DI, filtering for this will be moved
|
||||
// from here to clang.
|
||||
if (!OptDiag.isVerbose() || shouldEmitVerbose())
|
||||
F->getContext().diagnose(OptDiag);
|
||||
F->getContext().diagnose(OptDiag);
|
||||
}
|
||||
|
||||
OptimizationRemarkEmitterWrapperPass::OptimizationRemarkEmitterWrapperPass()
|
||||
|
|
|
@ -199,8 +199,12 @@ static bool isDiagnosticEnabled(const DiagnosticInfo &DI) {
|
|||
// pattern, passed via one of the -pass-remarks* flags, matches the name of
|
||||
// the pass that is emitting the diagnostic. If there is no match, ignore the
|
||||
// diagnostic and return.
|
||||
//
|
||||
// Also noisy remarks are only enabled if we have hotness information to sort
|
||||
// them.
|
||||
if (auto *Remark = dyn_cast<DiagnosticInfoOptimizationBase>(&DI))
|
||||
return Remark->isEnabled();
|
||||
return Remark->isEnabled() &&
|
||||
(!Remark->isVerbose() || Remark->getHotness());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
; CHECK: foz not inlined into bar because it should never be inlined (cost=never)
|
||||
|
||||
; Function Attrs: alwaysinline nounwind uwtable
|
||||
define i32 @foo(i32 %x, i32 %y) #0 {
|
||||
define i32 @foo(i32 %x, i32 %y) #0 !prof !1 {
|
||||
entry:
|
||||
%x.addr = alloca i32, align 4
|
||||
%y.addr = alloca i32, align 4
|
||||
|
@ -33,7 +33,7 @@ entry:
|
|||
}
|
||||
|
||||
; Function Attrs: noinline nounwind uwtable
|
||||
define float @foz(i32 %x, i32 %y) #1 {
|
||||
define float @foz(i32 %x, i32 %y) #1 !prof !1 {
|
||||
entry:
|
||||
%x.addr = alloca i32, align 4
|
||||
%y.addr = alloca i32, align 4
|
||||
|
@ -49,7 +49,7 @@ entry:
|
|||
declare i32 @fox()
|
||||
|
||||
; Function Attrs: nounwind uwtable
|
||||
define i32 @bar(i32 %j) #2 {
|
||||
define i32 @bar(i32 %j) #2 !prof !1 {
|
||||
entry:
|
||||
%j.addr = alloca i32, align 4
|
||||
store i32 %j, i32* %j.addr, align 4
|
||||
|
@ -76,3 +76,4 @@ attributes #2 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointe
|
|||
!llvm.ident = !{!0}
|
||||
|
||||
!0 = !{!"clang version 3.5.0 "}
|
||||
!1 = !{!"function_entry_count", i64 10}
|
||||
|
|
Loading…
Reference in New Issue