[PATCH] D15503: [PGO] Shorten profile symbol prefixes

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 14 13:10:03 PST 2015


David Li <davidxl at google.com> writes:
> Unlike profile data section names, profile symbol names (for data,
> counter and func names) are not part of runtime ABI. They can be
> changed to anything (given no name conflict) without changing profile
> format. Current naming scheme is to prefix the owning function name
> with long prefixes: llvm_profile_name_, llvm_profile_counters_,
> __llvm_profile_data_. For large C++ programs, this scheme can add to
> large overhead to the size of non-stripped binary and total input
> object size to the linker.
> 
> This patch shortens the prefixes without losing the symbol name
> 'readability'.
> 
> The impact of this change: Clang profile-instr binary size is reduced
> by 7M, and the total instrumented object size is reduced by ~40M. For
> larger apps, the savings can be easily hundreds of mega byes.
> 
> The test case changes are mechanical -- they are not included in the
> review.

Can't we just make these symbols unnamed or internal so that they don't
even show up in the final object files? The more verbose names in llvm
IR are kind of nice for readability.

> davidxl updated this revision to Diff 42750.
> davidxl added a comment.
>
> Include LLVM test changes as requested.
>
>
> http://reviews.llvm.org/D15503
>
> Files:
>   include/llvm/ProfileData/InstrProf.h
>   test/Instrumentation/InstrProfiling/PR23499.ll
>   test/Instrumentation/InstrProfiling/linkage.ll
>   test/Instrumentation/InstrProfiling/no-counters.ll
>   test/Instrumentation/InstrProfiling/noruntime.ll
>   test/Instrumentation/InstrProfiling/platform.ll
>   test/Instrumentation/InstrProfiling/profiling.ll
>   test/Transforms/PGOProfile/branch1.ll
>   test/Transforms/PGOProfile/branch2.ll
>   test/Transforms/PGOProfile/criticaledge.ll
>   test/Transforms/PGOProfile/landingpad.ll
>   test/Transforms/PGOProfile/loop1.ll
>   test/Transforms/PGOProfile/loop2.ll
>   test/Transforms/PGOProfile/single_bb.ll
>   test/Transforms/PGOProfile/switch.ll
>
> Index: test/Transforms/PGOProfile/switch.ll
> ===================================================================
> --- test/Transforms/PGOProfile/switch.ll
> +++ test/Transforms/PGOProfile/switch.ll
> @@ -4,7 +4,7 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_test_switch = private constant [11 x i8] c"test_switch"
> +; GEN: @__prf_nm_test_switch = private constant [11 x i8] c"test_switch"
>  
>  define void @test_switch(i32 %i) {
>  entry:
> @@ -21,22 +21,22 @@
>  
>  sw.bb:
>  ; GEN: sw.bb:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 2)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 2)
>    br label %sw.epilog
>  
>  sw.bb1:
>  ; GEN: sw.bb1:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 0)
>    br label %sw.epilog
>  
>  sw.bb2:
>  ; GEN: sw.bb2:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 1)
>    br label %sw.epilog
>  
>  sw.default:
>  ; GEN: sw.default:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 3)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm_test_switch, i32 0, i32 0), i64 46200943743, i32 4, i32 3)
>    br label %sw.epilog
>  
>  sw.epilog:
> Index: test/Transforms/PGOProfile/single_bb.ll
> ===================================================================
> --- test/Transforms/PGOProfile/single_bb.ll
> +++ test/Transforms/PGOProfile/single_bb.ll
> @@ -2,11 +2,11 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_single_bb = private constant [9 x i8] c"single_bb"
> +; GEN: @__prf_nm_single_bb = private constant [9 x i8] c"single_bb"
>  
>  define i32 @single_bb() {
>  entry:
>  ; GEN: entry:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__llvm_profile_name_single_bb, i32 0, i32 0), i64 12884901887, i32 1, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__prf_nm_single_bb, i32 0, i32 0), i64 12884901887, i32 1, i32 0)
>    ret i32 0
>  }
> Index: test/Transforms/PGOProfile/loop2.ll
> ===================================================================
> --- test/Transforms/PGOProfile/loop2.ll
> +++ test/Transforms/PGOProfile/loop2.ll
> @@ -4,7 +4,7 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_test_nested_for = private constant [15 x i8] c"test_nested_for"
> +; GEN: @__prf_nm_test_nested_for = private constant [15 x i8] c"test_nested_for"
>  
>  define i32 @test_nested_for(i32 %r, i32 %s) {
>  entry:
> @@ -45,7 +45,7 @@
>  
>  for.inc.inner:
>  ; GEN: for.inc.inner:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__llvm_profile_name_test_nested_for, i32 0, i32 0), i64 53929068288, i32 3, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__prf_nm_test_nested_for, i32 0, i32 0), i64 53929068288, i32 3, i32 0)
>    %inc.1 = add nsw i32 %j.0, 1
>    br label %for.cond.inner
>  
> @@ -55,13 +55,13 @@
>  
>  for.inc.outer:
>  ; GEN: for.inc.outer:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__llvm_profile_name_test_nested_for, i32 0, i32 0), i64 53929068288, i32 3, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__prf_nm_test_nested_for, i32 0, i32 0), i64 53929068288, i32 3, i32 1)
>    %inc.2 = add nsw i32 %i.0, 1
>    br label %for.cond.outer
>  
>  for.end.outer:
>  ; GEN: for.end.outer:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__llvm_profile_name_test_nested_for, i32 0, i32 0), i64 53929068288, i32 3, i32 2)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__prf_nm_test_nested_for, i32 0, i32 0), i64 53929068288, i32 3, i32 2)
>    ret i32 %sum.0
>  }
>  
> Index: test/Transforms/PGOProfile/loop1.ll
> ===================================================================
> --- test/Transforms/PGOProfile/loop1.ll
> +++ test/Transforms/PGOProfile/loop1.ll
> @@ -4,7 +4,7 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_test_simple_for = private constant [15 x i8] c"test_simple_for"
> +; GEN: @__prf_nm_test_simple_for = private constant [15 x i8] c"test_simple_for"
>  
>  define i32 @test_simple_for(i32 %n) {
>  entry:
> @@ -31,12 +31,12 @@
>  
>  for.inc:
>  ; GEN: for.inc:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__llvm_profile_name_test_simple_for, i32 0, i32 0), i64 34137660316, i32 2, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__prf_nm_test_simple_for, i32 0, i32 0), i64 34137660316, i32 2, i32 0)
>    %inc1 = add nsw i32 %i, 1
>    br label %for.cond
>  
>  for.end:
>  ; GEN: for.end:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__llvm_profile_name_test_simple_for, i32 0, i32 0), i64 34137660316, i32 2, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @__prf_nm_test_simple_for, i32 0, i32 0), i64 34137660316, i32 2, i32 1)
>    ret i32 %sum
>  }
> Index: test/Transforms/PGOProfile/landingpad.ll
> ===================================================================
> --- test/Transforms/PGOProfile/landingpad.ll
> +++ test/Transforms/PGOProfile/landingpad.ll
> @@ -6,8 +6,8 @@
>  
>  @val = global i32 0, align 4
>  @_ZTIi = external constant i8*
> -; GEN: @__llvm_profile_name_bar = private constant [3 x i8] c"bar"
> -; GEN: @__llvm_profile_name_foo = private constant [3 x i8] c"foo"
> +; GEN: @__prf_nm_bar = private constant [3 x i8] c"bar"
> +; GEN: @__prf_nm_foo = private constant [3 x i8] c"foo"
>  
>  define i32 @bar(i32 %i) {
>  entry:
> @@ -21,7 +21,7 @@
>  
>  if.then:
>  ; GEN: if.then:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_bar, i32 0, i32 0), i64 24868915205, i32 2, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_bar, i32 0, i32 0), i64 24868915205, i32 2, i32 1)
>    %exception = call i8* @__cxa_allocate_exception(i64 4)
>    %tmp = bitcast i8* %exception to i32*
>    store i32 %i, i32* %tmp, align 16
> @@ -30,7 +30,7 @@
>  
>  if.end:
>  ; GEN: if.end:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_bar, i32 0, i32 0), i64 24868915205, i32 2, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_bar, i32 0, i32 0), i64 24868915205, i32 2, i32 0)
>    ret i32 0
>  }
>  
> @@ -57,7 +57,7 @@
>  
>  invoke.cont:
>  ; GEN: invoke.cont:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 1)
>    br label %if.end
>  
>  lpad:
> @@ -80,7 +80,7 @@
>  
>  catch:
>  ; GEN: catch:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 2)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 2)
>    %tmp4 = call i8* @__cxa_begin_catch(i8* %tmp1)
>    %tmp5 = bitcast i8* %tmp4 to i32*
>    %tmp6 = load i32, i32* %tmp5, align 4
> @@ -97,7 +97,7 @@
>  
>  if.end:
>  ; GEN: if.end:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 0)
>    %tmp8 = load i32, i32* @val, align 4
>    %add = add nsw i32 %tmp8, %i
>    store i32 %add, i32* @val, align 4
> @@ -105,7 +105,7 @@
>  
>  eh.resume:
>  ; GEN: eh.resume:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 3)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 59130013419, i32 4, i32 3)
>    %lpad.val = insertvalue { i8*, i32 } undef, i8* %tmp1, 0
>    %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %tmp2, 1
>    resume { i8*, i32 } %lpad.val3
> Index: test/Transforms/PGOProfile/criticaledge.ll
> ===================================================================
> --- test/Transforms/PGOProfile/criticaledge.ll
> +++ test/Transforms/PGOProfile/criticaledge.ll
> @@ -4,8 +4,8 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_test_criticalEdge = private constant [17 x i8] c"test_criticalEdge"
> -; GEN: @__llvm_profile_name__stdin__bar = private constant [11 x i8] c"<stdin>:bar"
> +; GEN: @__prf_nm_test_criticalEdge = private constant [17 x i8] c"test_criticalEdge"
> +; GEN: @__prf_nm__stdin__bar = private constant [11 x i8] c"<stdin>:bar"
>  
>  define i32 @test_criticalEdge(i32 %i, i32 %j) {
>  entry:
> @@ -24,22 +24,22 @@
>  ; USE-SAME: !prof ![[BW_SWITCH:[0-9]+]]
>  
>  ; CHECK: entry.sw.bb2_crit_edge1:
> -; GEN:   call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 1)
> +; GEN:   call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 1)
>  ; CHECK:   br label %sw.bb2
>  
>  ; CHECK: entry.sw.bb2_crit_edge:
> -; GEN:   call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 0)
> +; GEN:   call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 0)
>  ; CHECK:   br label %sw.bb2
>  
>  sw.bb:
>  ; GEN: sw.bb:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 5)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 5)
>    %call = call i32 @bar(i32 2)
>    br label %sw.epilog
>  
>  sw.bb1:
>  ; GEN: sw.bb1:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 4)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 4)
>    %call2 = call i32 @bar(i32 1024)
>    br label %sw.epilog
>  
> @@ -53,13 +53,13 @@
>  
>  if.then:
>  ; GEN: if.then:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 2)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 2)
>    %call4 = call i32 @bar(i32 4)
>    br label %return
>  
>  if.end:
>  ; GEN: if.end:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 3)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 3)
>    %call5 = call i32 @bar(i32 8)
>    br label %sw.epilog
>  
> @@ -74,13 +74,13 @@
>  
>  if.then8:
>  ; GEN: if.then8:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 7)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 7)
>    %add = add nsw i32 %call6, 10
>    br label %if.end9
>  
>  if.end9:
>  ; GEN: if.end9:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__llvm_profile_name_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 6)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @__prf_nm_test_criticalEdge, i32 0, i32 0), i64 82323253069, i32 8, i32 6)
>    %res.0 = phi i32 [ %add, %if.then8 ], [ %call6, %sw.default ]
>    br label %sw.epilog
>  
> @@ -99,7 +99,7 @@
>  
>  define internal i32 @bar(i32 %i) {
>  entry:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name__stdin__bar, i32 0, i32 0), i64 12884901887, i32 1, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm__stdin__bar, i32 0, i32 0), i64 12884901887, i32 1, i32 0)
>    ret i32 %i
>  }
>  
> Index: test/Transforms/PGOProfile/branch2.ll
> ===================================================================
> --- test/Transforms/PGOProfile/branch2.ll
> +++ test/Transforms/PGOProfile/branch2.ll
> @@ -4,7 +4,7 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_test_br_2 = private constant [9 x i8] c"test_br_2"
> +; GEN: @__prf_nm_test_br_2 = private constant [9 x i8] c"test_br_2"
>  
>  define i32 @test_br_2(i32 %i) {
>  entry:
> @@ -18,13 +18,13 @@
>  
>  if.then:
>  ; GEN: if.then:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__llvm_profile_name_test_br_2, i32 0, i32 0), i64 29667547796, i32 2, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__prf_nm_test_br_2, i32 0, i32 0), i64 29667547796, i32 2, i32 0)
>    %add = add nsw i32 %i, 2
>    br label %if.end
>  
>  if.else:
>  ; GEN: if.else:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__llvm_profile_name_test_br_2, i32 0, i32 0), i64 29667547796, i32 2, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__prf_nm_test_br_2, i32 0, i32 0), i64 29667547796, i32 2, i32 1)
>    %sub = sub nsw i32 %i, 2
>    br label %if.end
>  
> Index: test/Transforms/PGOProfile/branch1.ll
> ===================================================================
> --- test/Transforms/PGOProfile/branch1.ll
> +++ test/Transforms/PGOProfile/branch1.ll
> @@ -4,7 +4,7 @@
>  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>  target triple = "x86_64-unknown-linux-gnu"
>  
> -; GEN: @__llvm_profile_name_test_br_1 = private constant [9 x i8] c"test_br_1"
> +; GEN: @__prf_nm_test_br_1 = private constant [9 x i8] c"test_br_1"
>  
>  define i32 @test_br_1(i32 %i) {
>  entry:
> @@ -18,13 +18,13 @@
>  
>  if.then:
>  ; GEN: if.then:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__llvm_profile_name_test_br_1, i32 0, i32 0), i64 25571299074, i32 2, i32 1)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__prf_nm_test_br_1, i32 0, i32 0), i64 25571299074, i32 2, i32 1)
>    %add = add nsw i32 %i, 2
>    br label %if.end
>  
>  if.end:
>  ; GEN: if.end:
> -; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__llvm_profile_name_test_br_1, i32 0, i32 0), i64 25571299074, i32 2, i32 0)
> +; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__prf_nm_test_br_1, i32 0, i32 0), i64 25571299074, i32 2, i32 0)
>    %retv = phi i32 [ %add, %if.then ], [ %i, %entry ]
>    ret i32 %retv
>  }
> Index: test/Instrumentation/InstrProfiling/profiling.ll
> ===================================================================
> --- test/Instrumentation/InstrProfiling/profiling.ll
> +++ test/Instrumentation/InstrProfiling/profiling.ll
> @@ -2,37 +2,37 @@
>  
>  target triple = "x86_64-apple-macosx10.10.0"
>  
> - at __llvm_profile_name_foo = hidden constant [3 x i8] c"foo"
> -; CHECK: @__llvm_profile_name_foo = hidden constant [3 x i8] c"foo", section "__DATA,__llvm_prf_names", align 1
> - at __llvm_profile_name_bar = hidden constant [4 x i8] c"bar\00"
> -; CHECK: @__llvm_profile_name_bar = hidden constant [4 x i8] c"bar\00", section "__DATA,__llvm_prf_names", align 1
> - at __llvm_profile_name_baz = hidden constant [3 x i8] c"baz"
> -; CHECK: @__llvm_profile_name_baz = hidden constant [3 x i8] c"baz", section "__DATA,__llvm_prf_names", align 1
> + at __prf_nm_foo = hidden constant [3 x i8] c"foo"
> +; CHECK: @__prf_nm_foo = hidden constant [3 x i8] c"foo", section "__DATA,__llvm_prf_names", align 1
> + at __prf_nm_bar = hidden constant [4 x i8] c"bar\00"
> +; CHECK: @__prf_nm_bar = hidden constant [4 x i8] c"bar\00", section "__DATA,__llvm_prf_names", align 1
> + at __prf_nm_baz = hidden constant [3 x i8] c"baz"
> +; CHECK: @__prf_nm_baz = hidden constant [3 x i8] c"baz", section "__DATA,__llvm_prf_names", align 1
>  
> -; CHECK: @__llvm_profile_counters_foo = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> -; CHECK: @__llvm_profile_data_foo = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
> +; CHECK: @__prf_cn_foo = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> +; CHECK: @__prf_dt_foo = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
>  define void @foo() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> -; CHECK: @__llvm_profile_counters_bar = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> -; CHECK: @__llvm_profile_data_bar = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
> +; CHECK: @__prf_cn_bar = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> +; CHECK: @__prf_dt_bar = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
>  define void @bar() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @__llvm_profile_name_bar, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @__prf_nm_bar, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> -; CHECK: @__llvm_profile_counters_baz = hidden global [3 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> -; CHECK: @__llvm_profile_data_baz = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
> +; CHECK: @__prf_cn_baz = hidden global [3 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> +; CHECK: @__prf_dt_baz = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
>  define void @baz() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_baz, i32 0, i32 0), i64 0, i32 3, i32 0)
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_baz, i32 0, i32 0), i64 0, i32 3, i32 1)
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_baz, i32 0, i32 0), i64 0, i32 3, i32 2)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_baz, i32 0, i32 0), i64 0, i32 3, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_baz, i32 0, i32 0), i64 0, i32 3, i32 1)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_baz, i32 0, i32 0), i64 0, i32 3, i32 2)
>    ret void
>  }
>  
>  declare void @llvm.instrprof.increment(i8*, i64, i32, i32)
>  
>  ; CHECK: @__llvm_profile_runtime = external global i32
> -; CHECK: @llvm.used = appending global {{.*}} @__llvm_profile_data_foo {{.*}} @__llvm_profile_data_bar {{.*}} @__llvm_profile_data_baz {{.*}} section "llvm.metadata"
> +; CHECK: @llvm.used = appending global {{.*}} @__prf_dt_foo {{.*}} @__prf_dt_bar {{.*}} @__prf_dt_baz {{.*}} section "llvm.metadata"
> Index: test/Instrumentation/InstrProfiling/platform.ll
> ===================================================================
> --- test/Instrumentation/InstrProfiling/platform.ll
> +++ test/Instrumentation/InstrProfiling/platform.ll
> @@ -5,20 +5,20 @@
>  ; RUN: opt < %s -mtriple=x86_64-unknown-freebsd -instrprof -S | FileCheck %s -check-prefix=FREEBSD
>  ; RUN: opt < %s -mtriple=x86_64-pc-solaris -instrprof -S | FileCheck %s -check-prefix=SOLARIS
>  
> - at __llvm_profile_name_foo = hidden constant [3 x i8] c"foo"
> -; MACHO: @__llvm_profile_name_foo = hidden constant [3 x i8] c"foo", section "__DATA,__llvm_prf_names", align 1
> -; ELF: @__llvm_profile_name_foo = hidden constant [3 x i8] c"foo", section "__llvm_prf_names", align 1
> + at __prf_nm_foo = hidden constant [3 x i8] c"foo"
> +; MACHO: @__prf_nm_foo = hidden constant [3 x i8] c"foo", section "__DATA,__llvm_prf_names", align 1
> +; ELF: @__prf_nm_foo = hidden constant [3 x i8] c"foo", section "__llvm_prf_names", align 1
>  
> -; MACHO: @__llvm_profile_counters_foo = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> -; ELF: @__llvm_profile_counters_foo = hidden global [1 x i64] zeroinitializer, section "__llvm_prf_cnts", align 8
> +; MACHO: @__prf_cn_foo = hidden global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
> +; ELF: @__prf_cn_foo = hidden global [1 x i64] zeroinitializer, section "__llvm_prf_cnts", align 8
>  
> -; MACHO: @__llvm_profile_data_foo = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
> -; LINUX: @__llvm_profile_data_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
> -; FREEBSD: @__llvm_profile_data_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
> -; SOLARIS: @__llvm_profile_data_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
> +; MACHO: @__prf_dt_foo = hidden {{.*}}, section "__DATA,__llvm_prf_data", align 8
> +; LINUX: @__prf_dt_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
> +; FREEBSD: @__prf_dt_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
> +; SOLARIS: @__prf_dt_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
>  
>  define void @foo() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> Index: test/Instrumentation/InstrProfiling/noruntime.ll
> ===================================================================
> --- test/Instrumentation/InstrProfiling/noruntime.ll
> +++ test/Instrumentation/InstrProfiling/noruntime.ll
> @@ -6,10 +6,10 @@
>  
>  @__llvm_profile_runtime = global i32 0, align 4
>  
> - at __llvm_profile_name_foo = hidden constant [3 x i8] c"foo"
> + at __prf_nm_foo = hidden constant [3 x i8] c"foo"
>  
>  define void @foo() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> Index: test/Instrumentation/InstrProfiling/no-counters.ll
> ===================================================================
> --- test/Instrumentation/InstrProfiling/no-counters.ll
> +++ test/Instrumentation/InstrProfiling/no-counters.ll
> @@ -1,8 +1,8 @@
>  ;; No instrumentation should be emitted if there are no counter increments.
>  
>  ; RUN: opt < %s -instrprof -S | FileCheck %s
> -; CHECK-NOT: @__llvm_profile_counters
> -; CHECK-NOT: @__llvm_profile_data
> +; CHECK-NOT: @__prf_cn
> +; CHECK-NOT: @__prf_dt
>  ; CHECK-NOT: @__llvm_profile_runtime
>  
>  define void @foo() {
> Index: test/Instrumentation/InstrProfiling/linkage.ll
> ===================================================================
> --- test/Instrumentation/InstrProfiling/linkage.ll
> +++ test/Instrumentation/InstrProfiling/linkage.ll
> @@ -3,36 +3,36 @@
>  ; RUN: opt < %s -mtriple=x86_64-apple-macosx10.10.0 -instrprof -S | FileCheck %s --check-prefix=OTHER --check-prefix=COMMON
>  ; RUN: opt < %s -mtriple=x86_64-unknown-linux -instrprof -S | FileCheck %s --check-prefix=LINUX --check-prefix=COMMON
>  
> - at __llvm_profile_name_foo = hidden constant [3 x i8] c"foo"
> - at __llvm_profile_name_foo_weak = weak hidden constant [8 x i8] c"foo_weak"
> -@"__llvm_profile_name_linkage.ll:foo_internal" = internal constant [23 x i8] c"linkage.ll:foo_internal"
> - at __llvm_profile_name_foo_inline = linkonce_odr hidden constant [10 x i8] c"foo_inline"
> + at __prf_nm_foo = hidden constant [3 x i8] c"foo"
> + at __prf_nm_foo_weak = weak hidden constant [8 x i8] c"foo_weak"
> +@"__prf_nm_linkage.ll:foo_internal" = internal constant [23 x i8] c"linkage.ll:foo_internal"
> + at __prf_nm_foo_inline = linkonce_odr hidden constant [10 x i8] c"foo_inline"
>  
> -; COMMON: @__llvm_profile_counters_foo = hidden global
> -; COMMON: @__llvm_profile_data_foo = hidden global
> +; COMMON: @__prf_cn_foo = hidden global
> +; COMMON: @__prf_dt_foo = hidden global
>  define void @foo() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__prf_nm_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> -; COMMON: @__llvm_profile_counters_foo_weak = weak hidden global
> -; COMMON: @__llvm_profile_data_foo_weak = weak hidden global
> +; COMMON: @__prf_cn_foo_weak = weak hidden global
> +; COMMON: @__prf_dt_foo_weak = weak hidden global
>  define weak void @foo_weak() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @__llvm_profile_name_foo_weak, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @__prf_nm_foo_weak, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> -; COMMON: @"__llvm_profile_counters_linkage.ll:foo_internal" = internal global
> -; COMMON: @"__llvm_profile_data_linkage.ll:foo_internal" = internal global
> +; COMMON: @"__prf_cn_linkage.ll:foo_internal" = internal global
> +; COMMON: @"__prf_dt_linkage.ll:foo_internal" = internal global
>  define internal void @foo_internal() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"__llvm_profile_name_linkage.ll:foo_internal", i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"__prf_nm_linkage.ll:foo_internal", i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> -; COMMON: @__llvm_profile_counters_foo_inline = linkonce_odr hidden global
> -; COMMON: @__llvm_profile_data_foo_inline = linkonce_odr hidden global
> +; COMMON: @__prf_cn_foo_inline = linkonce_odr hidden global
> +; COMMON: @__prf_dt_foo_inline = linkonce_odr hidden global
>  define linkonce_odr void @foo_inline() {
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @__llvm_profile_name_foo_inline, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @__prf_nm_foo_inline, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
>  
> Index: test/Instrumentation/InstrProfiling/PR23499.ll
> ===================================================================
> --- test/Instrumentation/InstrProfiling/PR23499.ll
> +++ test/Instrumentation/InstrProfiling/PR23499.ll
> @@ -6,16 +6,16 @@
>  
>  $_Z3barIvEvv = comdat any
>  
> - at __llvm_profile_name__Z3barIvEvv = linkonce_odr hidden constant [11 x i8] c"_Z3barIvEvv", align 1
> + at __prf_nm__Z3barIvEvv = linkonce_odr hidden constant [11 x i8] c"_Z3barIvEvv", align 1
>  
> -; CHECK: @__llvm_profile_name__Z3barIvEvv = linkonce_odr hidden constant [11 x i8] c"_Z3barIvEvv", section "{{.*}}__llvm_prf_names", comdat($__llvm_profile_vars__Z3barIvEvv), align 1
> -; CHECK: @__llvm_profile_counters__Z3barIvEvv = linkonce_odr hidden global [1 x i64] zeroinitializer, section "{{.*}}__llvm_prf_cnts", comdat($__llvm_profile_vars__Z3barIvEvv), align 8
> -; CHECK: @__llvm_profile_data__Z3barIvEvv = linkonce_odr hidden global { i32, i32, i64, i8*, i64*, i8*, i8*, [1 x i16] } { i32 11, i32 1, i64 0, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name__Z3barIvEvv, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__llvm_profile_counters__Z3barIvEvv, i32 0, i32 0), i8* null, i8* null, [1 x i16] zeroinitializer }, section "{{.*}}__llvm_prf_data", comdat($__llvm_profile_vars__Z3barIvEvv), align 8
> +; CHECK: @__prf_nm__Z3barIvEvv = linkonce_odr hidden constant [11 x i8] c"_Z3barIvEvv", section "{{.*}}__llvm_prf_names", comdat($__llvm_profile_vars__Z3barIvEvv), align 1
> +; CHECK: @__prf_cn__Z3barIvEvv = linkonce_odr hidden global [1 x i64] zeroinitializer, section "{{.*}}__llvm_prf_cnts", comdat($__llvm_profile_vars__Z3barIvEvv), align 8
> +; CHECK: @__prf_dt__Z3barIvEvv = linkonce_odr hidden global { i32, i32, i64, i8*, i64*, i8*, i8*, [1 x i16] } { i32 11, i32 1, i64 0, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm__Z3barIvEvv, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__prf_cn__Z3barIvEvv, i32 0, i32 0), i8* null, i8* null, [1 x i16] zeroinitializer }, section "{{.*}}__llvm_prf_data", comdat($__llvm_profile_vars__Z3barIvEvv), align 8
>  
>  declare void @llvm.instrprof.increment(i8*, i64, i32, i32) #1
>  
>  define linkonce_odr void @_Z3barIvEvv() comdat {
>  entry:
> -  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__llvm_profile_name__Z3barIvEvv, i32 0, i32 0), i64 0, i32 1, i32 0)
> +  call void @llvm.instrprof.increment(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @__prf_nm__Z3barIvEvv, i32 0, i32 0), i64 0, i32 1, i32 0)
>    ret void
>  }
> Index: include/llvm/ProfileData/InstrProf.h
> ===================================================================
> --- include/llvm/ProfileData/InstrProf.h
> +++ include/llvm/ProfileData/InstrProf.h
> @@ -70,15 +70,13 @@
>  }
>  
>  /// Return the name prefix of variables containing instrumented function names.
> -inline StringRef getInstrProfNameVarPrefix() { return "__llvm_profile_name_"; }
> +inline StringRef getInstrProfNameVarPrefix() { return "__prf_nm_"; }
>  
>  /// Return the name prefix of variables containing per-function control data.
> -inline StringRef getInstrProfDataVarPrefix() { return "__llvm_profile_data_"; }
> +inline StringRef getInstrProfDataVarPrefix() { return "__prf_dt_"; }
>  
>  /// Return the name prefix of profile counter variables.
> -inline StringRef getInstrProfCountersVarPrefix() {
> -  return "__llvm_profile_counters_";
> -}
> +inline StringRef getInstrProfCountersVarPrefix() { return "__prf_cn_"; }
>  
>  /// Return the name prefix of the COMDAT group for instrumentation variables
>  /// associated with a COMDAT function.


More information about the llvm-commits mailing list