[InstrProfiling] Don't exit early when an unused intrinsic is found

This fixes a think-o in r323574.

llvm-svn: 323576
This commit is contained in:
Vedant Kumar 2018-01-27 00:01:04 +00:00
parent 51ce668d12
commit cff94627cf
2 changed files with 21 additions and 3 deletions

View File

@ -434,13 +434,16 @@ void InstrProfiling::promoteCounterLoadStores(Function *F) {
static bool containsProfilingIntrinsics(Module &M) {
if (auto *F = M.getFunction(
Intrinsic::getName(llvm::Intrinsic::instrprof_increment)))
return !F->use_empty();
if (!F->use_empty())
return true;
if (auto *F = M.getFunction(
Intrinsic::getName(llvm::Intrinsic::instrprof_increment_step)))
return !F->use_empty();
if (!F->use_empty())
return true;
if (auto *F = M.getFunction(
Intrinsic::getName(llvm::Intrinsic::instrprof_value_profile)))
return !F->use_empty();
if (!F->use_empty())
return true;
return false;
}

View File

@ -0,0 +1,15 @@
; RUN: opt < %s -instrprof -S | FileCheck %s
target triple = "x86_64-apple-macosx10.10.0"
declare void @llvm.instrprof.increment(i8*, i64, i32, i32)
declare void @llvm.instrprof.increment.step(i8*, i64, i32, i32, i64)
@__profn_foo = hidden constant [3 x i8] c"foo"
define void @foo() {
; CHECK: @__profc_foo = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
call void @llvm.instrprof.increment.step(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__profn_foo, i32 0, i32 0), i64 0, i32 1, i32 0, i64 0)
ret void
}