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

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 14 15:33:47 PST 2015


On Mon, Dec 14, 2015 at 3:31 PM, Justin Bogner <mail at justinbogner.com> wrote:
> Xinliang David Li <davidxl at google.com> writes:
>> Since I don't hear problems with the patch (other than name verbosity
>> which Diego thinks shorter form is more readable ;) ), I will commit
>> the patch soon.
>
> For the record, I find the new names completely unreadable. I'd probably
> go with profn profd and profc if we want something absurdly short - prf
> could easily be an abbreviation for perf or something like that which is
> confusing.
>

Ok --  I am ok with that suggestion. Instead of reverting the previous
patch just submitted, I will have a follow up to do what you suggested
-- it is even shorter which is good.

David


>> thanks,
>>
>> David
>>
>> On Mon, Dec 14, 2015 at 1:10 PM, Justin Bogner <mail at justinbogner.com> wrote:
>>> 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