80 lines · plain
1;; Check that the -basic-block-address-map option works when used along with -basic-block-sections.2;; Let a function with 4 basic blocks get split into 2 sections.3; RUN: echo '!_Z3bazb' > %t4; RUN: echo '!!0 2' >> %t5; RUN: llc < %s -mtriple=x86_64 -basic-block-address-map -basic-block-sections=%t | FileCheck %s6 7define void @_Z3bazb(i1 zeroext) personality ptr @__gxx_personality_v0 {8 br i1 %0, label %2, label %79 102:11 %3 = invoke i32 @_Z3barv()12 to label %7 unwind label %513 br label %914 155:16 landingpad { ptr, i32 }17 catch ptr null18 br label %919 207:21 %8 = call i32 @_Z3foov()22 br label %923 249:25 ret void26}27 28declare i32 @_Z3barv() #129 30declare i32 @_Z3foov() #131 32declare i32 @__gxx_personality_v0(...)33 34; CHECK: .text35; CHECK-LABEL: _Z3bazb:36; CHECK-LABEL: .Lfunc_begin0:37; CHECK-LABEL: .LBB_END0_0:38; CHECK-LABEL: .LBB0_1:39; CHECK-LABEL: .LBB_END0_1:40; CHECK: .section .text.split._Z3bazb,"ax",@progbits41; CHECK-LABEL: _Z3bazb.cold:42; CHECK-LABEL: .LBB0_2_CS0:43; CHECK-LABEL: .LBB_END0_2:44; CHECK-LABEL: .LBB0_3:45; CHECK-LABEL: .LBB0_3_CS0:46; CHECK-LABEL: .LBB_END0_3:47; CHECK-LABEL: .Lfunc_end0:48 49; CHECK: .section .llvm_bb_addr_map,"o",@llvm_bb_addr_map,.text.hot._Z3bazb50; CHECK-NEXT: .byte 4 # version51; CHECK-NEXT: .byte 40 # feature52; CHECK-NEXT: .byte 2 # number of basic block ranges53; CHECK-NEXT: .quad .Lfunc_begin0 # base address54; CHECK-NEXT: .byte 2 # number of basic blocks55; CHECK-NEXT: .byte 0 # BB id56; CHECK-NEXT: .uleb128 .Lfunc_begin0-.Lfunc_begin057; CHECK-NEXT: .byte 0 # number of callsites58; CHECK-NEXT: .uleb128 .LBB_END0_0-.Lfunc_begin059; CHECK-NEXT: .byte 060; CHECK-NEXT: .byte 2 # BB id61; CHECK-NEXT: .uleb128 .LBB0_1-.LBB_END0_062; CHECK-NEXT: .byte 0 # number of callsites63; CHECK-NEXT: .uleb128 .LBB_END0_1-.LBB0_164; CHECK-NEXT: .byte 565; CHECK-NEXT: .quad _Z3bazb.cold # base address66; CHECK-NEXT: .byte 2 # number of basic blocks67; CHECK-NEXT: .byte 1 # BB id68; CHECK-NEXT: .uleb128 _Z3bazb.cold-_Z3bazb.cold69; CHECK-NEXT: .byte 1 # number of callsites70; CHECK-NEXT: .uleb128 .LBB0_2_CS0-_Z3bazb.cold71; CHECK-NEXT: .uleb128 .LBB_END0_2-.LBB0_2_CS072; CHECK-NEXT: .byte 873; CHECK-NEXT: .byte 3 # BB id74; CHECK-NEXT: .uleb128 .LBB0_3-.LBB_END0_275; CHECK-NEXT: .byte 1 # number of callsites76; CHECK-NEXT: .uleb128 .LBB0_3_CS0-.LBB0_377; CHECK-NEXT: .uleb128 .LBB_END0_3-.LBB0_3_CS078; CHECK-NEXT: .byte 179 80