brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 4561031 Raw
48 lines · plain
1;; Check that all data variables are created for instrumented functions even2;; when those functions are fully inlined into their instrumented callers prior3;; to the instrprof pass.4; RUN: opt %s -passes='instrprof' -S | FileCheck %s -check-prefix=NOINLINE5; RUN: opt %s -passes='cgscc(inline),instrprof' -S | FileCheck %s -check-prefix=INLINEFIRST6; RUN: opt %s -passes='instrprof,cgscc(inline)' -S | FileCheck %s -check-prefix=INLINEAFTER7 8target triple = "x86_64-unknown-linux-gnu"9 10; INLINEFIRST: @__profd_foo = private global{{.*}}zeroinitializer, i32 2111; INLINEFIRST: @__profd_bar = private global{{.*}}zeroinitializer, i32 2312; INLINEFIRST: @__profd_foobar = private global{{.*}}zeroinitializer, i32 9913 14; INLINEAFTER: @__profd_foobar = private global{{.*}}zeroinitializer, i32 9915; INLINEAFTER: @__profd_foo = private global{{.*}}zeroinitializer, i32 2116; INLINEAFTER: @__profd_bar = private global{{.*}}zeroinitializer, i32 2317 18; NOINLINE: @__profd_foobar = private global{{.*}}zeroinitializer, i32 9919; NOINLINE: @__profd_foo = private global{{.*}}zeroinitializer, i32 2120; NOINLINE: @__profd_bar = private global{{.*}}zeroinitializer, i32 2321 22declare void @llvm.instrprof.increment(ptr %0, i64 %1, i32 %2, i32 %3)23declare void @llvm.instrprof.mcdc.parameters(ptr %0, i64 %1, i32 %2)24@__profn_foobar = private constant [6 x i8] c"foobar"25@__profn_foo = private constant [3 x i8] c"foo"26@__profn_bar = private constant [3 x i8] c"bar"27 28define internal void @foobar() {29  call void @llvm.instrprof.increment(ptr @__profn_foobar, i64 123456, i32 32, i32 0)30  call void @llvm.instrprof.mcdc.parameters(ptr @__profn_foobar, i64 123456, i32 792)31 32  ret void33}34 35define void @foo() {36  call void @llvm.instrprof.increment(ptr @__profn_foo, i64 123456, i32 32, i32 0)37  call void @llvm.instrprof.mcdc.parameters(ptr @__profn_foo, i64 123456, i32 168)38  call void @foobar()39  ret void40}41 42define void @bar() {43  call void @llvm.instrprof.increment(ptr @__profn_bar, i64 123456, i32 32, i32 0)44  call void @llvm.instrprof.mcdc.parameters(ptr @__profn_bar, i64 123456, i32 184)45  call void @foobar()46  ret void47}48