xref: /llvm-project/llvm/test/Instrumentation/InstrProfiling/inline-data-var.ll (revision d3d49bca3ed968226ab9dc22f27d779eeb973c22)
1*d3d49bcaSAlan Phipps;; Check that only one data variable is created when an instrprof.increment is
2*d3d49bcaSAlan Phipps;; inlined into more than one function.
3*d3d49bcaSAlan Phipps; RUN: opt %s -passes='cgscc(inline),instrprof' -S | FileCheck %s
4*d3d49bcaSAlan Phipps
5*d3d49bcaSAlan Phippstarget triple = "x86_64-unknown-linux-gnu"
6*d3d49bcaSAlan Phipps
7*d3d49bcaSAlan Phipps; CHECK: @__profd_foobar = private global
8*d3d49bcaSAlan Phipps; CHECK-NOT @__profd_foobar
9*d3d49bcaSAlan Phipps
10*d3d49bcaSAlan Phippsdeclare void @llvm.instrprof.increment(ptr %0, i64 %1, i32 %2, i32 %3)
11*d3d49bcaSAlan Phipps@__profn_foobar = private constant [6 x i8] c"foobar"
12*d3d49bcaSAlan Phipps
13*d3d49bcaSAlan Phippsdefine internal void @foobar() {
14*d3d49bcaSAlan Phipps  call void @llvm.instrprof.increment(ptr @__profn_foobar, i64 123456, i32 32, i32 0)
15*d3d49bcaSAlan Phipps  ret void
16*d3d49bcaSAlan Phipps}
17*d3d49bcaSAlan Phipps
18*d3d49bcaSAlan Phippsdefine void @foo() {
19*d3d49bcaSAlan Phipps  call void @foobar()
20*d3d49bcaSAlan Phipps  ret void
21*d3d49bcaSAlan Phipps}
22*d3d49bcaSAlan Phipps
23*d3d49bcaSAlan Phippsdefine void @bar() {
24*d3d49bcaSAlan Phipps  call void @foobar()
25*d3d49bcaSAlan Phipps  ret void
26*d3d49bcaSAlan Phipps}
27