87 lines · plain
1; RUN: llc -O0 %s --basic-block-sections=all -mtriple=x86_64 -filetype=asm --frame-pointer=all -o - | FileCheck --check-prefix=SECTIONS_CFI %s2; RUN: llc -O0 %s --basic-block-sections=all -mtriple=x86_64 -filetype=asm --frame-pointer=none -o - | FileCheck --check-prefix=SECTIONS_NOFP_CFI %s3; RUN: llc -O0 %s --basic-block-sections=all -mtriple=x86_64 -filetype=obj --frame-pointer=all -o - | llvm-dwarfdump --eh-frame - | FileCheck --check-prefix=EH_FRAME %s4 5;; void f1();6;; void f3(bool b) {7;; if (b)8;; f1();9;; }10 11 12; SECTIONS_CFI: _Z2f3b:13; SECTIONS_CFI: .cfi_startproc14; SECTIONS_CFI: .cfi_def_cfa_offset 1615; SECTIONS_CFI: .cfi_offset %rbp, -1616; SECTIONS_CFI: .cfi_def_cfa_register %rbp17; SECTIONS_CFI: .cfi_endproc18 19; SECTIONS_CFI: _Z2f3b.__part.1:20; SECTIONS_CFI-NEXT: .cfi_startproc21; SECTIONS_CFI-NEXT: .cfi_def_cfa %rbp, 1622; SECTIONS_CFI-NEXT: .cfi_offset %rbp, -1623; SECTIONS_CFI: .cfi_endproc24 25; SECTIONS_CFI: _Z2f3b.__part.2:26; SECTIONS_CFI-NEXT: .cfi_startproc27; SECTIONS_CFI-NEXT: .cfi_def_cfa %rbp, 1628; SECTIONS_CFI-NEXT: .cfi_offset %rbp, -1629; SECTIONS_CFI: .cfi_def_cfa30; SECTIONS_CFI: .cfi_endproc31 32 33; SECTIONS_NOFP_CFI: _Z2f3b:34; SECTIONS_NOFP_CFI: .cfi_startproc35; SECTIONS_NOFP_CFI: .cfi_def_cfa_offset 1636; SECTIONS_NOFP_CFI: .cfi_endproc37 38; SECTIONS_NOFP_CFI: _Z2f3b.__part.1:39; SECTIONS_NOFP_CFI-NEXT: .cfi_startproc40; SECTIONS_NOFP_CFI-NEXT: .cfi_def_cfa %rsp, 1641; SECTIONS_NOFP_CFI: .cfi_endproc42 43; SECTIONS_NOFP_CFI: _Z2f3b.__part.2:44; SECTIONS_NOFP_CFI-NEXT: .cfi_startproc45; SECTIONS_NOFP_CFI-NEXT: .cfi_def_cfa %rsp, 1646; SECTIONS_NOFP_CFI: .cfi_endproc47 48 49;; There must be 1 CIE and 3 FDEs.50 51; EH_FRAME: CIE52; EH_FRAME: DW_CFA_def_cfa53; EH_FRAME: DW_CFA_offset54 55; EH_FRAME: FDE cie=56; EH_FRAME: DW_CFA_def_cfa_offset57; EH_FRAME: DW_CFA_offset58; EH_FRAME: DW_CFA_def_cfa_register59 60; EH_FRAME: FDE cie=61; EH_FRAME: DW_CFA_def_cfa62; EH_FRAME: DW_CFA_offset63 64; EH_FRAME: FDE cie=65; EH_FRAME: DW_CFA_def_cfa66; EH_FRAME: DW_CFA_offset67 68; Function Attrs: noinline optnone uwtable69define dso_local void @_Z2f3b(i1 zeroext %b) {70entry:71 %b.addr = alloca i8, align 172 %frombool = zext i1 %b to i873 store i8 %frombool, ptr %b.addr, align 174 %0 = load i8, ptr %b.addr, align 175 %tobool = trunc i8 %0 to i176 br i1 %tobool, label %if.then, label %if.end77 78if.then: ; preds = %entry79 call void @_Z2f1v()80 br label %if.end81 82if.end: ; preds = %if.then, %entry83 ret void84}85 86declare dso_local void @_Z2f1v()87