From: Sriraman Tallam Date: Wed, 23 Dec 2020 17:51:35 +0000 (-0800) Subject: Append ".__part." to every basic block section symbol. X-Git-Tag: llvmorg-13-init~2635 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34e70d722dfd0e73d460802e8d43d3a885d24784;p=platform%2Fupstream%2Fllvm.git Append ".__part." to every basic block section symbol. Every basic block section symbol created by -fbasic-block-sections will contain ".__part." to know that this symbol corresponds to a basic block fragment of the function. This patch solves two problems: a) Like D89617, we want function symbols with suffixes to be properly qualified so that external tools like profile aggregators know exactly what this symbol corresponds to. b) The current basic block naming just adds a ".N" to the symbol name where N is some integer. This collides with how clang creates __cxx_global_var_init.N. clang creates these symbol names to call constructor functions and basic block symbol naming should not use the same style. Fixed all the test cases and added an extra test for __cxx_global_var_init breakage. Differential Revision: https://reviews.llvm.org/D93082 --- diff --git a/clang/test/CodeGen/basic-block-sections.c b/clang/test/CodeGen/basic-block-sections.c index 805539f..70cdeee 100644 --- a/clang/test/CodeGen/basic-block-sections.c +++ b/clang/test/CodeGen/basic-block-sections.c @@ -31,14 +31,14 @@ int another(int a) { // BB_WORLD: .section .text.world,"ax",@progbits{{$}} // BB_WORLD: world: // BB_WORLD: .section .text.world,"ax",@progbits,unique -// BB_WORLD: world.1: +// BB_WORLD: world.__part.1: // BB_WORLD: .section .text.another,"ax",@progbits // BB_ALL: .section .text.another,"ax",@progbits,unique -// BB_ALL: another.1: +// BB_ALL: another.__part.1: // BB_LIST-NOT: .section .text.another,"ax",@progbits,unique // BB_LIST: another: -// BB_LIST-NOT: another.1: +// BB_LIST-NOT: another.__part.1: // -// UNIQUE: .section .text.world.world.1, -// UNIQUE: .section .text.another.another.1, +// UNIQUE: .section .text.world.world.__part.1, +// UNIQUE: .section .text.another.another.__part.1, // ERROR: error: unable to load basic block sections function list: '{{[Nn]}}o such file or directory' diff --git a/lld/test/ELF/lto/basic-block-sections.ll b/lld/test/ELF/lto/basic-block-sections.ll index 1f932ac..35b638a 100644 --- a/lld/test/ELF/lto/basic-block-sections.ll +++ b/lld/test/ELF/lto/basic-block-sections.ll @@ -11,12 +11,12 @@ ; SECNAMES: Name: .text.foo {{.*}} ; SECNAMES-FULL: Name: .text.foo {{.*}} -; SECNAMES-FULL: Name: .text.foo.foo.1 {{.*}} -; SECNAMES-FULL: Name: .text.foo.foo.2 {{.*}} +; SECNAMES-FULL: Name: .text.foo.foo.__part.1 {{.*}} +; SECNAMES-FULL: Name: .text.foo.foo.__part.2 {{.*}} ; SYMS: foo -; SYMS: foo.1 -; SYMS: foo.2 +; SYMS: foo.__part.1 +; SYMS: foo.__part.2 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp index 0278999..14a270f 100644 --- a/llvm/lib/CodeGen/MachineBasicBlock.cpp +++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp @@ -71,7 +71,10 @@ MCSymbol *MachineBasicBlock::getSymbol() const { } else if (SectionID == MBBSectionID::ExceptionSectionID) { Suffix += ".eh"; } else { - Suffix += "." + std::to_string(SectionID.Number); + // For symbols that represent basic block sections, we add ".__part." to + // allow tools like symbolizers to know that this represents a part of + // the original function. + Suffix = (Suffix + Twine(".__part.") + Twine(SectionID.Number)).str(); } CachedMCSymbol = Ctx.getOrCreateSymbol(MF->getName() + Suffix); } else { diff --git a/llvm/test/CodeGen/X86/basic-block-sections-blockaddress-taken.ll b/llvm/test/CodeGen/X86/basic-block-sections-blockaddress-taken.ll index aaae1cf..4957916 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-blockaddress-taken.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-blockaddress-taken.ll @@ -18,7 +18,7 @@ bb1: ; preds = %entry ret void ; CHECK: .section .text,"ax",@progbits,unique,1 ; CHECK-NEXT: .Ltmp0: -; CHECK-NEXT: foo.1 +; CHECK-NEXT: foo.__part.1 ; CHECK-NEXT: callq bar ; @@ -27,7 +27,7 @@ bb2: ; preds = %entry ret void ; CHECK: .section .text,"ax",@progbits,unique,2 ; CHECK-NEXT: .Ltmp1: -; CHECK-NEXT: foo.2 +; CHECK-NEXT: foo.__part.2 ; CHECK-NEXT: callq baz } diff --git a/llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll b/llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll index 914ebd0c..1cf8ac1 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll @@ -43,23 +43,23 @@ declare i32 @baz() #1 ; LINUX-SECTIONS1: .section .text.foo,"ax",@progbits ; LINUX-SECTIONS1-LABEL: foo: -; LINUX-SECTIONS1: jne foo.1 +; LINUX-SECTIONS1: jne foo.__part.1 ; LINUX-SECTIONS1-NOT: {{jne|je|jmp}} ; LINUX-SECTIONS1-LABEL: # %bb.2: ; LINUX-SECTIONS1: jmp foo.cold ; LINUX-SECTIONS1: .section .text.foo,"ax",@progbits,unique,1 -; LINUX-SECTIONS1-LABEL: foo.1: +; LINUX-SECTIONS1-LABEL: foo.__part.1: ; LINUX-SECTIONS1: jmp foo.cold ; LINUX-SECTIONS1: .section .text.split.foo,"ax",@progbits ; LINUX-SECTIONS1-LABEL: foo.cold: ; LINUX-SECTIONS2: .section .text.foo,"ax",@progbits ; LINUX-SECTIONS2-LABEL: foo: -; LINUX-SECTIONS2: jne foo.0 +; LINUX-SECTIONS2: jne foo.__part.0 ; LINUX-SECTIONS2-NOT: {{jne|je|jmp}} ; LINUX-SECTIONS2-LABEL: # %bb.2: ; LINUX-SECTIONS2: jmp .LBB0_3 ; LINUX-SECTIONS2: .section .text.foo,"ax",@progbits,unique,1 -; LINUX-SECTIONS2: foo.0: +; LINUX-SECTIONS2: foo.__part.0: ; LINUX-SECTIONS2-NOT: {{jne|je|jmp}} ; LINUX-SECTIONS2: .LBB0_3: diff --git a/llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll b/llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll index 4e80c72..fe53b12 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll @@ -60,7 +60,7 @@ declare i32 @__gxx_personality_v0(...) ; LINUX-SECTIONS1-NOT: .section ; LINUX-SECTIONS1-LABEL: .LBB0_6: ; LINUX-SECTIONS1: .section .text.main,"ax",@progbits,unique,1 -; LINUX-SECTIONS1-LABEL: main.0: +; LINUX-SECTIONS1-LABEL: main.__part.0: ; LINUX-SECTIONS1: .section .text.eh.main,"ax",@progbits ; LINUX-SECTIONS1-LABEL: main.eh: ; LINUX-SECTIONS1-NOT: .section @@ -79,7 +79,7 @@ declare i32 @__gxx_personality_v0(...) ; LINUX-SECTIONS2-NOT: .section ; LINUX-SECTIONS2-LABEL: .LBB0_6: ; LINUX-SECTIONS2: .section .text.main,"ax",@progbits,unique,1 -; LINUX-SECTIONS2-LABEL: main.0: +; LINUX-SECTIONS2-LABEL: main.__part.0: ; LINUX-SECTIONS2-NOT: .section ; LINUX-SECTIONS2-LABEL: .LBB0_2: ; LINUX-SECTIONS2-NOT: .section diff --git a/llvm/test/CodeGen/X86/basic-block-sections-clusters.ll b/llvm/test/CodeGen/X86/basic-block-sections-clusters.ll index ce0e758..c133653 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-clusters.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-clusters.ll @@ -46,9 +46,9 @@ declare i32 @baz() #1 ; LINUX-SECTIONS1-LABEL: # %bb.2: ; LINUX-SECTIONS1-NOT: .LBB_END0_{{0-9}}+ ; LINUX-SECTIONS1: .section .text.foo,"ax",@progbits,unique,1 -; LINUX-SECTIONS1-LABEL: foo.1: +; LINUX-SECTIONS1-LABEL: foo.__part.1: ; LINUX-SECTIONS1-LABEL: .LBB_END0_1: -; LINUX-SECTIONS1-NEXT: .size foo.1, .LBB_END0_1-foo.1 +; LINUX-SECTIONS1-NEXT: .size foo.__part.1, .LBB_END0_1-foo.__part.1 ; LINUX-SECTIONS1-NOT: .section ; LINUX-SECTIONS1: .section .text.split.foo,"ax",@progbits ; LINUX-SECTIONS1-LABEL: foo.cold: @@ -66,12 +66,12 @@ declare i32 @baz() #1 ; LINUX-SECTIONS2-LABEL: # %bb.2: ; LINUX-SECTIONS2-NOT: .LBB_END0_{{0-9}}+ ; LINUX-SECTIONS2: .section .text.foo,"ax",@progbits,unique,1 -; LINUX-SECTIONS2-NEXT: foo.0: +; LINUX-SECTIONS2-NEXT: foo.__part.0: ; LINUX-SECTIONS2-NOT: .LBB_END0_{{0-9}}+ ; LINUX-SECTIONS2-NOT: .section ; LINUX-SECTIONS2-LABEL: .LBB0_3: ; LINUX-SECTIONS2-LABEL: .LBB_END0_3: -; LINUX-SECTIONS2-NEXT: .size foo.0, .LBB_END0_3-foo.0 +; LINUX-SECTIONS2-NEXT: .size foo.__part.0, .LBB_END0_3-foo.__part.0 ; LINUX-SECTIONS2: .section .text.foo,"ax",@progbits ; LINUX-SECTIONS2-NOT: .LBB_END0_{{0-9}}+ ; LINUX-SECTIONS2-LABEL: .Lfunc_end0: diff --git a/llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll b/llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll index 99a64ef..4acafff 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll @@ -29,10 +29,10 @@ declare i32 @_Z3foov() #1 ; LINUX-SECTIONS: .section .text._Z3bazb,"ax",@progbits ; LINUX-SECTIONS: _Z3bazb: -; LINUX-SECTIONS: jmp _Z3bazb.1 -; LINUX-SECTIONS: .section .text._Z3bazb._Z3bazb.1,"ax",@progbits -; LINUX-SECTIONS: _Z3bazb.1: -; LINUX-SECTIONS: jmp _Z3bazb.2 -; LINUX-SECTIONS: .section .text._Z3bazb._Z3bazb.2,"ax",@progbits -; LINUX-SECTIONS: _Z3bazb.2: -; LINUX-SECTIONS: jmp _Z3bazb.3 +; LINUX-SECTIONS: jmp _Z3bazb.__part.1 +; LINUX-SECTIONS: .section .text._Z3bazb._Z3bazb.__part.1,"ax",@progbits +; LINUX-SECTIONS: _Z3bazb.__part.1: +; LINUX-SECTIONS: jmp _Z3bazb.__part.2 +; LINUX-SECTIONS: .section .text._Z3bazb._Z3bazb.__part.2,"ax",@progbits +; LINUX-SECTIONS: _Z3bazb.__part.2: +; LINUX-SECTIONS: jmp _Z3bazb.__part.3 diff --git a/llvm/test/CodeGen/X86/basic-block-sections-eh.ll b/llvm/test/CodeGen/X86/basic-block-sections-eh.ll index f12e0fd..743ffa3 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-eh.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-eh.ll @@ -80,6 +80,6 @@ declare void @__cxa_end_catch() ;LINUX-SECTIONS: .section .text._Z3foob,"ax",@progbits ;LINUX-SECTIONS: _Z3foob: -;LINUX-SECTIONS: .section .text._Z3foob._Z3foob.{{[0-9]+}},"ax",@progbits -;LINUX-SECTIONS-LABEL: _Z3foob.{{[0-9]+}}: +;LINUX-SECTIONS: .section .text._Z3foob._Z3foob.__part.{{[0-9]+}},"ax",@progbits +;LINUX-SECTIONS-LABEL: _Z3foob.__part.{{[0-9]+}}: ;LINUX-SECTIONS: calll __cxa_begin_catch diff --git a/llvm/test/CodeGen/X86/basic-block-sections-list.ll b/llvm/test/CodeGen/X86/basic-block-sections-list.ll index 7c48628..8d788ff 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-list.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-list.ll @@ -59,14 +59,14 @@ define i32 @_Z3zipb(i1 zeroext %0) nounwind { ; LINUX-SECTIONS: .section .text._Z3foob,"ax",@progbits ; LINUX-SECTIONS: _Z3foob: -; LINUX-SECTIONS: .section .text._Z3foob._Z3foob.1,"ax",@progbits -; LINUX-SECTIONS: _Z3foob.1: -; LINUX-SECTIONS: .section .text._Z3foob._Z3foob.2,"ax",@progbits -; LINUX-SECTIONS: _Z3foob.2: -; LINUX-SECTIONS: .section .text._Z3foob._Z3foob.3,"ax",@progbits -; LINUX-SECTIONS: _Z3foob.3: +; LINUX-SECTIONS: .section .text._Z3foob._Z3foob.__part.1,"ax",@progbits +; LINUX-SECTIONS: _Z3foob.__part.1: +; LINUX-SECTIONS: .section .text._Z3foob._Z3foob.__part.2,"ax",@progbits +; LINUX-SECTIONS: _Z3foob.__part.2: +; LINUX-SECTIONS: .section .text._Z3foob._Z3foob.__part.3,"ax",@progbits +; LINUX-SECTIONS: _Z3foob.__part.3: ; LINUX-SECTIONS: .section .text._Z3zipb,"ax",@progbits ; LINUX-SECTIONS: _Z3zipb: -; LINUX-SECTIONS-NOT: .section .text._Z3zipb._Z3zipb.{{[0-9]+}},"ax",@progbits -; LINUX-SECTIONS-NOT: _Z3zipb.{{[0-9]+}}: +; LINUX-SECTIONS-NOT: .section .text._Z3zipb._Z3zipb.__part.{{[0-9]+}},"ax",@progbits +; LINUX-SECTIONS-NOT: _Z3zipb.__part.{{[0-9]+}}: diff --git a/llvm/test/CodeGen/X86/basic-block-sections-listbb.ll b/llvm/test/CodeGen/X86/basic-block-sections-listbb.ll index 53bf56e..fd65222 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-listbb.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-listbb.ll @@ -33,10 +33,10 @@ declare i32 @_Z3foov() #1 ; LINUX-SECTIONS: .section .text._Z3bazb,"ax",@progbits ; LINUX-SECTIONS: _Z3bazb: ; Check that the basic block with id 1 doesn't get a section. -; LINUX-SECTIONS-NOT: .section .text._Z3bazb._Z3bazb.{{[0-9]+}},"ax",@progbits +; LINUX-SECTIONS-NOT: .section .text._Z3bazb._Z3bazb.__part.{{[0-9]+}},"ax",@progbits ; LINUX-SECTIONS-LABEL: # %bb.1: ; LINUX-SECTIONS-NEXT: callq _Z3barv -; LINUX-SECTIONS: .section .text._Z3bazb.[[SECTION_LABEL:_Z3bazb.[0-9]+]],"ax",@progbits +; LINUX-SECTIONS: .section .text._Z3bazb.[[SECTION_LABEL:_Z3bazb.__part.[0-9]+]],"ax",@progbits ; LINUX-SECTIONS-NEXT: [[SECTION_LABEL]]: ; LINUX-SECTIONS-NEXT: callq _Z3foov ; LINUX-SECTIONS: .LBB_END0_2: diff --git a/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir b/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir index a4219fa..6a2cee0 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir +++ b/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir @@ -124,8 +124,8 @@ body: | # CHECK: _Z3foob: # CHECK: .section .text,"ax",@progbits,unique -# CHECK: _Z3foob.1: +# CHECK: _Z3foob.__part.1: # CHECK: .section .text,"ax",@progbits,unique -# CHECK: _Z3foob.2: +# CHECK: _Z3foob.__part.2: # CHECK: .section .text,"ax",@progbits,unique -# CHECK: _Z3foob.3: +# CHECK: _Z3foob.__part.3: diff --git a/llvm/test/CodeGen/X86/basic-block-sections-unreachable.ll b/llvm/test/CodeGen/X86/basic-block-sections-unreachable.ll index 6501d7b..8c77070 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-unreachable.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections-unreachable.ll @@ -14,5 +14,5 @@ default: unreachable ; CHECK-NOSECTIONS: # %bb.2: # %default ; CHECK-SECTIONS: .section .text,"ax",@progbits,unique,2 -; CHECK-SECTIONS-NEXT: foo.2: # %default +; CHECK-SECTIONS-NEXT: foo.__part.2: # %default } diff --git a/llvm/test/CodeGen/X86/basic-block-sections.ll b/llvm/test/CodeGen/X86/basic-block-sections.ll index 81bb5d5..7b93076 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections.ll +++ b/llvm/test/CodeGen/X86/basic-block-sections.ll @@ -28,11 +28,11 @@ declare i32 @_Z3foov() #1 ; LINUX-SECTIONS: .section .text._Z3bazb,"ax",@progbits ; LINUX-SECTIONS: _Z3bazb: -; LINUX-SECTIONS: .section .text._Z3bazb._Z3bazb.1,"ax",@progbits -; LINUX-SECTIONS: _Z3bazb.1: +; LINUX-SECTIONS: .section .text._Z3bazb.[[SECTION_LABEL_1:_Z3bazb.__part.[0-9]+]],"ax",@progbits +; LINUX-SECTIONS: [[SECTION_LABEL_1]]: ; LINUX-SECTIONS: .LBB_END0_1: -; LINUX-SECTIONS-NEXT: .size _Z3bazb.1, .LBB_END0_1-_Z3bazb.1 -; LINUX-SECTIONS: .section .text._Z3bazb._Z3bazb.2,"ax",@progbits -; LINUX-SECTIONS: _Z3bazb.2: +; LINUX-SECTIONS-NEXT: .size [[SECTION_LABEL_1]], .LBB_END0_1-[[SECTION_LABEL_1]] +; LINUX-SECTIONS: .section .text._Z3bazb.[[SECTION_LABEL_2:_Z3bazb.__part.[0-9]+]],"ax",@progbits +; LINUX-SECTIONS: [[SECTION_LABEL_2]]: ; LINUX-SECTIONS: .LBB_END0_2: -; LINUX-SECTIONS-NEXT: .size _Z3bazb.2, .LBB_END0_2-_Z3bazb.2 +; LINUX-SECTIONS-NEXT: .size [[SECTION_LABEL_2]], .LBB_END0_2-[[SECTION_LABEL_2]] diff --git a/llvm/test/CodeGen/X86/basic-block-sections_2.ll b/llvm/test/CodeGen/X86/basic-block-sections_2.ll new file mode 100644 index 0000000..66c4c5a --- /dev/null +++ b/llvm/test/CodeGen/X86/basic-block-sections_2.ll @@ -0,0 +1,61 @@ +; Check that the basic block sections suffix naming does not conflict with __cxx_global_var_init.N naming. +; How to generate this file: +;; class A { +;; public: +;; A(bool a) { } +;; }; +;; +;; extern bool bar(int); +;; A g_a(bar(5) ? bar(3) : false), g_b(true); +;; +;; $ clang -O1 -emit-llvm -S +;; +; __cxx_global_var_init has multiple basic blocks which will produce many sections. +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s + +; CHECK-LABEL: __cxx_global_var_init: +; CHECK-LABEL: __cxx_global_var_init.__part.1: +; CHECK-LABEL: __cxx_global_var_init.1: + +%class.A = type { i8 } + +$_ZN1AC2Eb = comdat any + +@g_a = dso_local global %class.A zeroinitializer, align 1 +@g_b = dso_local global %class.A zeroinitializer, align 1 +@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_symcollision.cc, i8* null }] + +define internal fastcc void @__cxx_global_var_init() unnamed_addr section ".text.startup" { +entry: + %call = call zeroext i1 @_Z3bari(i32 5) + br i1 %call, label %cond.true, label %cond.end + +cond.true: ; preds = %entry + %call1 = call zeroext i1 @_Z3bari(i32 3) + br label %cond.end + +cond.end: ; preds = %entry, %cond.true + %cond = phi i1 [ %call1, %cond.true ], [ false, %entry ] + call void @_ZN1AC2Eb(%class.A* nonnull @g_a, i1 zeroext %cond) + ret void +} + +declare dso_local zeroext i1 @_Z3bari(i32) local_unnamed_addr + +define linkonce_odr dso_local void @_ZN1AC2Eb(%class.A* %this, i1 zeroext %a) unnamed_addr comdat align 2 { +entry: + ret void +} + +define internal fastcc void @__cxx_global_var_init.1() unnamed_addr section ".text.startup" { +entry: + call void @_ZN1AC2Eb(%class.A* nonnull @g_b, i1 zeroext true) + ret void +} + +define internal void @_GLOBAL__sub_I_symcollision.cc() section ".text.startup" { +entry: + call fastcc void @__cxx_global_var_init() + call fastcc void @__cxx_global_var_init.1() + ret void +} diff --git a/llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll b/llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll index a5a6d69..6010c62 100644 --- a/llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll +++ b/llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll @@ -16,13 +16,13 @@ ; SECTIONS_CFI: .cfi_def_cfa_register %rbp ; SECTIONS_CFI: .cfi_endproc -; SECTIONS_CFI: _Z2f3b.1: +; SECTIONS_CFI: _Z2f3b.__part.1: ; SECTIONS_CFI-NEXT: .cfi_startproc ; SECTIONS_CFI-NEXT: .cfi_def_cfa %rbp, 16 ; SECTIONS_CFI-NEXT: .cfi_offset %rbp, -16 ; SECTIONS_CFI: .cfi_endproc -; SECTIONS_CFI: _Z2f3b.2: +; SECTIONS_CFI: _Z2f3b.__part.2: ; SECTIONS_CFI-NEXT: .cfi_startproc ; SECTIONS_CFI-NEXT: .cfi_def_cfa %rbp, 16 ; SECTIONS_CFI-NEXT: .cfi_offset %rbp, -16 @@ -35,12 +35,12 @@ ; SECTIONS_NOFP_CFI: .cfi_def_cfa_offset 16 ; SECTIONS_NOFP_CFI: .cfi_endproc -; SECTIONS_NOFP_CFI: _Z2f3b.1: +; SECTIONS_NOFP_CFI: _Z2f3b.__part.1: ; SECTIONS_NOFP_CFI-NEXT: .cfi_startproc ; SECTIONS_NOFP_CFI-NEXT: .cfi_def_cfa %rsp, 16 ; SECTIONS_NOFP_CFI: .cfi_endproc -; SECTIONS_NOFP_CFI: _Z2f3b.2: +; SECTIONS_NOFP_CFI: _Z2f3b.__part.2: ; SECTIONS_NOFP_CFI-NEXT: .cfi_startproc ; SECTIONS_NOFP_CFI-NEXT: .cfi_def_cfa %rsp, 16 ; SECTIONS_NOFP_CFI: .cfi_endproc diff --git a/llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll b/llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll index d87ead0..2b207e8 100644 --- a/llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll +++ b/llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll @@ -10,7 +10,7 @@ ; SECTIONS_CFI-NEXT: .cfi_offset [[RD:%r.+]], -32 ; SECTIONS_CFI-NEXT: .cfi_offset [[RE:%r.+]], -24 -; SECTIONS_CFI: _Z3foob.1: +; SECTIONS_CFI: _Z3foob.__part.1: ; SECTIONS_CFI: .cfi_offset %rbp, -16 ; SECTIONS_CFI: .cfi_offset [[RA]], -56 ; SECTIONS_CFI-NEXT: .cfi_offset [[RB]], -48 @@ -18,7 +18,7 @@ ; SECTIONS_CFI-NEXT: .cfi_offset [[RD]], -32 ; SECTIONS_CFI-NEXT: .cfi_offset [[RE]], -24 -; SECTIONS_CFI: _Z3foob.2: +; SECTIONS_CFI: _Z3foob.__part.2: ; SECTIONS_CFI: .cfi_offset %rbp, -16 ; SECTIONS_CFI: .cfi_offset [[RA]], -56 ; SECTIONS_CFI-NEXT: .cfi_offset [[RB]], -48 diff --git a/llvm/test/CodeGen/X86/gcc_except_table_bb_sections.ll b/llvm/test/CodeGen/X86/gcc_except_table_bb_sections.ll index ce0cc55..e0aae5be 100644 --- a/llvm/test/CodeGen/X86/gcc_except_table_bb_sections.ll +++ b/llvm/test/CodeGen/X86/gcc_except_table_bb_sections.ll @@ -27,7 +27,7 @@ define i32 @main() uwtable optsize ssp personality i8* bitcast (i32 (...)* @__gx ; CHECK-NOT: .cfi_lsda -; CHECK-LABEL: main.1: +; CHECK-LABEL: main.__part.1: ; CHECK-NEXT: .cfi_startproc ; CHECK-NON-PIC-NEXT: .cfi_personality 3, __gxx_personality_v0 @@ -38,7 +38,7 @@ define i32 @main() uwtable optsize ssp personality i8* bitcast (i32 (...)* @__gx ; CHECK-NOT: .cfi_lsda -; CHECK-LABEL: main.2: +; CHECK-LABEL: main.__part.2: ; CHECK-NEXT: .cfi_startproc ; CHECK-NON-PIC-NEXT: .cfi_personality 3, __gxx_personality_v0 @@ -82,12 +82,12 @@ declare i32 @__gxx_personality_v0(...) ;; Verify @LPStart encoding for NON-PIC mode. ; CHECK-NON-PIC-NEXT: .byte 0 # @LPStart Encoding = absptr -; CHECK-NON-PIC-NEXT: .quad main.2 +; CHECK-NON-PIC-NEXT: .quad main.__part.2 ;; Verify @LPStart encoding for PIC mode. ; CHECK-PIC-NEXT: .byte 16 # @LPStart Encoding = pcrel ; CHECK-PIC-NEXT: [[DOT:\.Ltmp[0-9]+]]: -; CHECK-PIC-NEXT: .quad main.2-[[DOT]] +; CHECK-PIC-NEXT: .quad main.__part.2-[[DOT]] ;; Verify @TType encoding for NON-PIC mode. ; CHECK-NON-PIC-NEXT: .byte 3 # @TType Encoding = udata4 @@ -102,17 +102,17 @@ declare i32 @__gxx_personality_v0(...) ; CHECK-NEXT: .Lcst_begin0: ; CHECK-NEXT: .uleb128 .Ltmp0-.Lfunc_begin0 # >> Call Site 1 << ; CHECK-NEXT: .uleb128 .Ltmp1-.Ltmp0 # Call between .Ltmp0 and .Ltmp1 -; CHECK-NEXT: .uleb128 .Ltmp2-main.2 # jumps to .Ltmp2 +; CHECK-NEXT: .uleb128 .Ltmp2-main.__part.2 # jumps to .Ltmp2 ; CHECK-NEXT: .byte 3 # On action: 2 ; CHECK-NEXT: .p2align 2 ; CHECK-NEXT: .Lexception1: ; CHECK-NON-PIC-NEXT: .byte 0 # @LPStart Encoding = absptr -; CHECK-NON-PIC-NEXT: .quad main.2 +; CHECK-NON-PIC-NEXT: .quad main.__part.2 ; CHECK-PIC-NEXT: .byte 16 # @LPStart Encoding = pcrel ; CHECK-PIC-NEXT: [[DOT:\.Ltmp[0-9]+]]: -; CHECK-PIC-NEXT: .quad main.2-[[DOT]] +; CHECK-PIC-NEXT: .quad main.__part.2-[[DOT]] ; CHECK-NON-PIC-NEXT: .byte 3 # @TType Encoding = udata4 @@ -127,11 +127,11 @@ declare i32 @__gxx_personality_v0(...) ; CHECK-NEXT: .Lexception2: ; CHECK-NON-PIC-NEXT: .byte 0 # @LPStart Encoding = absptr -; CHECK-NON-PIC-NEXT: .quad main.2 +; CHECK-NON-PIC-NEXT: .quad main.__part.2 ; CHECK-PIC-NEXT: .byte 16 # @LPStart Encoding = pcrel ; CHECK-PIC-NEXT: [[DOT:\.Ltmp[0-9]+]]: -; CHECK-PIC-NEXT: .quad main.2-[[DOT]] +; CHECK-PIC-NEXT: .quad main.__part.2-[[DOT]] ; CHECK-NON-PIC-NEXT: .byte 3 # @TType Encoding = udata4 @@ -142,8 +142,8 @@ declare i32 @__gxx_personality_v0(...) ; CHECK-NEXT: .byte 1 # Call site Encoding = uleb128 ; CHECK-NEXT: .uleb128 .Laction_table_base0-.Lcst_begin2 ; CHECK-NEXT: .Lcst_begin2: -; CHECK-NEXT: .uleb128 main.2-main.2 # >> Call Site 2 << -; CHECK-NEXT: .uleb128 .LBB_END0_2-main.2 # Call between main.2 and .LBB_END0_2 +; CHECK-NEXT: .uleb128 main.__part.2-main.__part.2 # >> Call Site 2 << +; CHECK-NEXT: .uleb128 .LBB_END0_2-main.__part.2 # Call between main.__part.2 and .LBB_END0_2 ; CHECK-NEXT: .byte 0 # has no landing pad ; CHECK-NEXT: .byte 0 # On action: cleanup ; CHECK-NEXT: .Laction_table_base0: diff --git a/llvm/test/DebugInfo/X86/basic-block-sections_1.ll b/llvm/test/DebugInfo/X86/basic-block-sections_1.ll index 98728d5..959ba67 100644 --- a/llvm/test/DebugInfo/X86/basic-block-sections_1.ll +++ b/llvm/test/DebugInfo/X86/basic-block-sections_1.ll @@ -16,33 +16,33 @@ ; NO-SECTIONS: DW_AT_high_pc [DW_FORM_data4] ({{.*}}) ; BB-SECTIONS: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) ; BB-SECTIONS-NEXT: DW_AT_ranges [DW_FORM_sec_offset] -; BB-SECTIONS-NEXT: [{{.*}}) ".text._Z3fooi.1" -; BB-SECTIONS-NEXT: [{{.*}}) ".text._Z3fooi.2" -; BB-SECTIONS-NEXT: [{{.*}}) ".text._Z3fooi.3" +; BB-SECTIONS-NEXT: [{{.*}}) ".text._Z3fooi.__part.1" +; BB-SECTIONS-NEXT: [{{.*}}) ".text._Z3fooi.__part.2" +; BB-SECTIONS-NEXT: [{{.*}}) ".text._Z3fooi.__part.3" ; BB-SECTIONS-NEXT: [{{.*}}) ".text" ; BB-SECTIONS-ASM: _Z3fooi: ; BB-SECTIONS-ASM: .Ltmp{{[0-9]+}}: ; BB-SECTIONS-ASM-NEXT: .loc 1 2 9 prologue_end ; BB-SECTIONS-ASM: .Ltmp{{[0-9]+}}: ; BB-SECTIONS-ASM-NEXT: .loc 1 2 7 is_stmt -; BB-SECTIONS-ASM: _Z3fooi.1: +; BB-SECTIONS-ASM: _Z3fooi.__part.1: ; BB-SECTIONS-ASM: .LBB_END0_{{[0-9]+}}: -; BB-SECTIONS-ASM: .size _Z3fooi.1, .LBB_END0_{{[0-9]+}}-_Z3fooi.1 -; BB-SECTIONS-ASM: _Z3fooi.2: +; BB-SECTIONS-ASM: .size _Z3fooi.__part.1, .LBB_END0_{{[0-9]+}}-_Z3fooi.__part.1 +; BB-SECTIONS-ASM: _Z3fooi.__part.2: ; BB-SECTIONS-ASM: .Ltmp{{[0-9]+}}: ; BB-SECTIONS-ASM-NEXT: .LBB_END0_{{[0-9]+}}: -; BB-SECTIONS-ASM: .size _Z3fooi.2, .LBB_END0_{{[0-9]+}}-_Z3fooi.2 -; BB-SECTIONS-ASM: _Z3fooi.3: +; BB-SECTIONS-ASM: .size _Z3fooi.__part.2, .LBB_END0_{{[0-9]+}}-_Z3fooi.__part.2 +; BB-SECTIONS-ASM: _Z3fooi.__part.3: ; BB-SECTIONS-ASM: .Ltmp{{[0-9]+}}: ; BB-SECTIONS-ASM-NEXT: .LBB_END0_{{[0-9]+}}: -; BB-SECTIONS-ASM: .size _Z3fooi.3, .LBB_END0_{{[0-9]+}}-_Z3fooi.3 +; BB-SECTIONS-ASM: .size _Z3fooi.__part.3, .LBB_END0_{{[0-9]+}}-_Z3fooi.__part.3 ; BB-SECTIONS-ASM: .Lfunc_end0: ; BB-SECTIONS-ASM: .Ldebug_ranges0: -; BB-SECTIONS-ASM-NEXT: .quad _Z3fooi.1 +; BB-SECTIONS-ASM-NEXT: .quad _Z3fooi.__part.1 ; BB-SECTIONS-ASM-NEXT: .quad .LBB_END0_{{[0-9]+}} -; BB-SECTIONS-ASM-NEXT: .quad _Z3fooi.2 +; BB-SECTIONS-ASM-NEXT: .quad _Z3fooi.__part.2 ; BB-SECTIONS-ASM-NEXT: .quad .LBB_END0_{{[0-9]+}} -; BB-SECTIONS-ASM-NEXT: .quad _Z3fooi.3 +; BB-SECTIONS-ASM-NEXT: .quad _Z3fooi.__part.3 ; BB-SECTIONS-ASM-NEXT: .quad .LBB_END0_{{[0-9]+}} ; BB-SECTIONS-ASM-NEXT: .quad .Lfunc_begin0 ; BB-SECTIONS-ASM-NEXT: .quad .Lfunc_end0