Index: lld/ELF/Driver.cpp =================================================================== --- lld/ELF/Driver.cpp +++ lld/ELF/Driver.cpp @@ -965,10 +965,10 @@ config->ltoPartitions = args::getInteger(args, OPT_lto_partitions, 1); config->ltoSampleProfile = args.getLastArgValue(OPT_lto_sample_profile); config->ltoBasicBlockSections = - args.getLastArgValue(OPT_lto_basicblock_sections); + args.getLastArgValue(OPT_lto_basic_block_sections); config->ltoUniqueBasicBlockSectionNames = - args.hasFlag(OPT_lto_unique_bb_section_names, - OPT_no_lto_unique_bb_section_names, false); + args.hasFlag(OPT_lto_unique_basic_block_section_names, + OPT_no_lto_unique_basic_block_section_names, false); config->mapFile = args.getLastArgValue(OPT_Map); config->mipsGotSize = args::getInteger(args, OPT_mips_got_size, 0xfff0); config->mergeArmExidx = Index: lld/ELF/LTO.cpp =================================================================== --- lld/ELF/LTO.cpp +++ lld/ELF/LTO.cpp @@ -76,7 +76,7 @@ c.Options.DataSections = true; // Check if basic block sections must be used. - // Allowed values for --lto-basicblock-sections are "all", "labels", + // Allowed values for --lto-basic-block-sections are "all", "labels", // "", or none. This is the equivalent // of -fbasic-block-sections= flag in clang. if (!config->ltoBasicBlockSections.empty()) { Index: lld/ELF/Options.td =================================================================== --- lld/ELF/Options.td +++ lld/ELF/Options.td @@ -545,9 +545,9 @@ def opt_remarks_format: Separate<["--"], "opt-remarks-format">, HelpText<"The format used for serializing remarks (default: YAML)">; def save_temps: F<"save-temps">; -def lto_basicblock_sections: JJ<"lto-basicblock-sections=">, +def lto_basic_block_sections: JJ<"lto-basic-block-sections=">, HelpText<"Enable basic block sections for LTO">; -defm lto_unique_bb_section_names: BB<"lto-unique-bb-section-names", +defm lto_unique_basic_block_section_names: BB<"lto-unique-basic-block-section-names", "Give unique names to every basic block section for LTO", "Do not give unique names to every basic block section for LTO (default)">; def shuffle_sections: JJ<"shuffle-sections=">, MetaVarName<"">, Index: lld/test/ELF/basic-block-sections-and-icf.s =================================================================== --- lld/test/ELF/basic-block-sections-and-icf.s +++ lld/test/ELF/basic-block-sections-and-icf.s @@ -1,5 +1,5 @@ # REQUIRES: x86 -## basicblock-sections tests. +## basic-block-sections tests. ## This simple test checks foo is folded into bar with bb sections ## and the jumps are deleted. Index: lld/test/ELF/basic-block-sections-delete-fallthru.s =================================================================== --- lld/test/ELF/basic-block-sections-delete-fallthru.s +++ lld/test/ELF/basic-block-sections-delete-fallthru.s @@ -1,5 +1,5 @@ # REQUIRES: x86 -## basicblock-sections tests. +## basic-block-sections tests. ## This simple test checks if redundant direct jumps are converted to ## implicit fallthrus. The jcc's must be converted to their inverted ## opcode, for instance jne to je and jmp must be deleted. Index: lld/test/ELF/basic-block-sections-pc32reloc.s =================================================================== --- lld/test/ELF/basic-block-sections-pc32reloc.s +++ lld/test/ELF/basic-block-sections-pc32reloc.s @@ -1,5 +1,5 @@ # REQUIRES: x86 -## basicblock-sections tests. +## basic-block-sections tests. ## This simple test checks if redundant direct jumps are converted to ## implicit fallthrus when PC32 reloc is present. The jcc's must be converted ## to their inverted opcode, for instance jne to je and jmp must be deleted. Index: lld/test/ELF/lto/basic-block-sections.ll =================================================================== --- /dev/null +++ lld/test/ELF/lto/basic-block-sections.ll @@ -0,0 +1,41 @@ +; REQUIRES: x86 +; RUN: llvm-as %s -o %t.o +; RUN: ld.lld %t.o -o %t --lto-basic-block-sections=all --lto-O0 --save-temps +; RUN: llvm-readobj -s %t.lto.o | FileCheck --check-prefix=SECNAMES %s +; RUN: ld.lld %t.o -o %t --lto-basic-block-sections=all --lto-unique-basic-block-section-names --lto-O0 --save-temps +; RUN: llvm-readobj -s %t.lto.o | FileCheck --check-prefix=SECNAMES-FULL %s +; RUN: llvm-nm %t.out | FileCheck --check-prefix=SYMS %s + +; SECNAMES: Name: .text.foo {{.*}} +; SECNAMES: Name: .text.foo {{.*}} +; SECNAMES: Name: .text.foo {{.*}} + +; SECNAMES-FULL: Name: .text.foo {{.*}} +; SECNAMES-FULL: Name: .text.foo.foo.1 {{.*}} +; SECNAMES-FULL: Name: .text.foo.foo.2 {{.*}} + +; SYMS: foo +; SYMS: foo.1 +; SYMS: foo.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" + +; Function Attrs: nounwind uwtable +define dso_local void @foo(i32 %b) local_unnamed_addr { +entry: + %tobool.not = icmp eq i32 %b, 0 + br i1 %tobool.not, label %if.end, label %if.then + +if.then: ; preds = %entry + tail call void @foo(i32 0) + br label %if.end + +if.end: ; preds = %entry, %if.then + ret void +} + +define void @_start() { + call void @foo(i32 1) + ret void +} Index: llvm/lib/CodeGen/CommandFlags.cpp =================================================================== --- llvm/lib/CodeGen/CommandFlags.cpp +++ llvm/lib/CodeGen/CommandFlags.cpp @@ -332,7 +332,7 @@ CGBINDOPT(FunctionSections); static cl::opt BBSections( - "basicblock-sections", + "basic-block-sections", cl::desc("Emit basic blocks into separate sections"), cl::value_desc("all | | labels | none"), cl::init("none")); @@ -352,7 +352,7 @@ CGBINDOPT(UniqueSectionNames); static cl::opt UniqueBasicBlockSectionNames( - "unique-bb-section-names", + "unique-basic-block-section-names", cl::desc("Give unique names to every basic block section"), cl::init(false)); CGBINDOPT(UniqueBasicBlockSectionNames); Index: llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll +++ llvm/test/CodeGen/X86/basic-block-sections-clusters-branches.ll @@ -7,7 +7,7 @@ ; RUN: echo '!foo' > %t1 ; RUN: echo '!!0 2' >> %t1 ; RUN: echo '!!1' >> %t1 -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t1 | FileCheck %s -check-prefix=LINUX-SECTIONS1 +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t1 | FileCheck %s -check-prefix=LINUX-SECTIONS1 ; ; Test2: Basic blocks #1 and #3 will be placed in the same section. ; The rest (#0 and #2) go into the function's section. @@ -15,7 +15,7 @@ ; #2 must have an explicit jump to #3. ; RUN: echo '!foo' > %t2 ; RUN: echo '!!1 3' >> %t2 -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t2 | FileCheck %s -check-prefix=LINUX-SECTIONS2 +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t2 | FileCheck %s -check-prefix=LINUX-SECTIONS2 define void @foo(i1 zeroext) nounwind { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll +++ llvm/test/CodeGen/X86/basic-block-sections-clusters-eh.ll @@ -5,14 +5,14 @@ ; The rest will be placed in a section along with the entry basic block. ; RUN: echo '!main' > %t1 ; RUN: echo '!!1 2' >> %t1 -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t1 | FileCheck %s -check-prefix=LINUX-SECTIONS1 +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t1 | FileCheck %s -check-prefix=LINUX-SECTIONS1 ; ; Test2: Basic blocks #1, #2, and #3 go into a separate section. ; No separate exception section will be created as #1 and #3 are already in one section. ; The rest will be placed in a section along with the entry basic block. ; RUN: echo '!main' > %t2 ; RUN: echo '!!1 2 3' >> %t2 -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t2 | FileCheck %s -check-prefix=LINUX-SECTIONS2 +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t2 | FileCheck %s -check-prefix=LINUX-SECTIONS2 @_ZTIi = external constant i8* Index: llvm/test/CodeGen/X86/basic-block-sections-clusters-error.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-clusters-error.ll +++ llvm/test/CodeGen/X86/basic-block-sections-clusters-error.ll @@ -2,19 +2,19 @@ ; RUN: echo '!f' > %t1 ; RUN: echo '!!1 4' >> %t1 ; RUN: echo '!!1' >> %t1 -; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t1 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR1 +; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t1 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR1 ; CHECK-ERROR1: LLVM ERROR: Invalid profile {{.*}} at line 3: Duplicate basic block id found '1'. ; RUN: echo '!f' > %t2 ; RUN: echo '!!4 0' >> %t2 -; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t2 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR2 +; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t2 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR2 ; CHECK-ERROR2: LLVM ERROR: Invalid profile {{.*}} at line 2: Entry BB (0) does not begin a cluster. ; RUN: echo '!f' > %t3 ; RUN: echo '!!-1' >> %t3 -; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t3 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR3 +; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t3 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR3 ; CHECK-ERROR3: LLVM ERROR: Invalid profile {{.*}} at line 2: Unsigned integer expected: '-1'. ; RUN: echo '!!1' > %t4 ; RUN: echo '!f' >> %t4 -; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t4 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR4 +; RUN: not --crash llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t4 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR4 ; CHECK-ERROR4: LLVM ERROR: Invalid profile {{.*}} at line 1: Cluster list does not follow a function name specifier. define i32 @dummy(i32 %x, i32 %y, i32 %z) { Index: llvm/test/CodeGen/X86/basic-block-sections-clusters.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-clusters.ll +++ llvm/test/CodeGen/X86/basic-block-sections-clusters.ll @@ -6,13 +6,13 @@ ; RUN: echo '!foo' > %t1 ; RUN: echo '!!0 2' >> %t1 ; RUN: echo '!!1' >> %t1 -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t1 | FileCheck %s -check-prefix=LINUX-SECTIONS1 +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t1 | FileCheck %s -check-prefix=LINUX-SECTIONS1 ; ; Test2: Basic blocks #1 and #3 will be placed in the same section. ; All other BBs (including the entry block) go into the function's section. ; RUN: echo '!foo' > %t2 ; RUN: echo '!!1 3' >> %t2 -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t2 | FileCheck %s -check-prefix=LINUX-SECTIONS2 +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t2 | FileCheck %s -check-prefix=LINUX-SECTIONS2 define void @foo(i1 zeroext) nounwind { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/basic-block-sections-cold.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-cold.ll +++ llvm/test/CodeGen/X86/basic-block-sections-cold.ll @@ -2,7 +2,7 @@ ; Basic block with id 1 and 2 must be in the cold section. ; RUN: echo '!_Z3bazb' > %t ; RUN: echo '!!0' >> %t -; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS define void @_Z3bazb(i1 zeroext) nounwind { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll +++ llvm/test/CodeGen/X86/basic-block-sections-directjumps.ll @@ -1,5 +1,5 @@ -; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=all -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS -; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections -basicblock-sections=all -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS define void @_Z3bazb(i1 zeroext) { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/basic-block-sections-eh.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-eh.ll +++ llvm/test/CodeGen/X86/basic-block-sections-eh.ll @@ -1,5 +1,5 @@ ; Check if landing pads are kept in a separate eh section -; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections -basicblock-sections=all -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS @_ZTIb = external constant i8* define i32 @_Z3foob(i1 zeroext %0) #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { Index: llvm/test/CodeGen/X86/basic-block-sections-labels.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-labels.ll +++ llvm/test/CodeGen/X86/basic-block-sections-labels.ll @@ -1,5 +1,5 @@ ; Check the basic block sections labels option -; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=labels | FileCheck %s -check-prefix=LINUX-LABELS +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=labels | FileCheck %s -check-prefix=LINUX-LABELS define void @_Z3bazb(i1 zeroext) { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/basic-block-sections-list.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-list.ll +++ llvm/test/CodeGen/X86/basic-block-sections-list.ll @@ -1,6 +1,6 @@ ; Check the basic block sections list option. ; RUN: echo '!_Z3foob' > %t -; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS define i32 @_Z3foob(i1 zeroext %0) nounwind { %2 = alloca i32, align 4 Index: llvm/test/CodeGen/X86/basic-block-sections-listbb.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-listbb.ll +++ llvm/test/CodeGen/X86/basic-block-sections-listbb.ll @@ -2,7 +2,7 @@ ; Only basic block with id 2 must get a section. ; RUN: echo '!_Z3bazb' > %t ; RUN: echo '!!2' >> %t -; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS define void @_Z3bazb(i1 zeroext) nounwind { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir +++ llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir @@ -10,7 +10,7 @@ # } # # clang -O0 -S -emit-llvm foo.cc -# llc < foo.ll -stop-after=bbsections-prepare -basicblock-sections=all +# llc < foo.ll -stop-after=bbsections-prepare -basic-block-sections=all --- | ; Function Attrs: noinline nounwind optnone uwtable Index: llvm/test/CodeGen/X86/basic-block-sections-mir-print.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections-mir-print.ll +++ llvm/test/CodeGen/X86/basic-block-sections-mir-print.ll @@ -2,7 +2,7 @@ ; RUN: echo '!_Z3foob' > %t ; RUN: echo '!!1' >> %t ; RUN: echo '!!2' >> %t -; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=%t -stop-after=bbsections-prepare | FileCheck %s -check-prefix=CHECK +; RUN: llc < %s -O0 -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t -stop-after=bbsections-prepare | FileCheck %s -check-prefix=CHECK @_ZTIb = external constant i8* define dso_local i32 @_Z3foob(i1 zeroext %0) { Index: llvm/test/CodeGen/X86/basic-block-sections.ll =================================================================== --- llvm/test/CodeGen/X86/basic-block-sections.ll +++ llvm/test/CodeGen/X86/basic-block-sections.ll @@ -1,5 +1,5 @@ -; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basicblock-sections=all -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS -; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections -basicblock-sections=all -unique-bb-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS define void @_Z3bazb(i1 zeroext) nounwind { %2 = alloca i8, align 1 Index: llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll =================================================================== --- llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll +++ llvm/test/CodeGen/X86/cfi-basic-block-sections-1.ll @@ -1,6 +1,6 @@ -; RUN: llc -O0 %s --basicblock-sections=all -mtriple=x86_64 -filetype=asm --frame-pointer=all -o - | FileCheck --check-prefix=SECTIONS_CFI %s -; RUN: llc -O0 %s --basicblock-sections=all -mtriple=x86_64 -filetype=asm --frame-pointer=none -o - | FileCheck --check-prefix=SECTIONS_NOFP_CFI %s -; RUN: llc -O0 %s --basicblock-sections=all -mtriple=x86_64 -filetype=obj --frame-pointer=all -o - | llvm-dwarfdump --eh-frame - | FileCheck --check-prefix=EH_FRAME %s +; RUN: llc -O0 %s --basic-block-sections=all -mtriple=x86_64 -filetype=asm --frame-pointer=all -o - | FileCheck --check-prefix=SECTIONS_CFI %s +; RUN: llc -O0 %s --basic-block-sections=all -mtriple=x86_64 -filetype=asm --frame-pointer=none -o - | FileCheck --check-prefix=SECTIONS_NOFP_CFI %s +; 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 %s ;; void f1(); ;; void f3(bool b) { Index: llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll =================================================================== --- llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll +++ llvm/test/CodeGen/X86/cfi-inserter-basic-block-sections-callee-save-registers.ll @@ -1,6 +1,6 @@ ;; This test checks if CFI instructions for all callee saved registers are emitted ;; correctly with basic block sections. -; RUN: llc %s -mtriple=x86_64 -filetype=asm --basicblock-sections=all --frame-pointer=all -o - | FileCheck --check-prefix=SECTIONS_CFI %s +; RUN: llc %s -mtriple=x86_64 -filetype=asm --basic-block-sections=all --frame-pointer=all -o - | FileCheck --check-prefix=SECTIONS_CFI %s ; SECTIONS_CFI: _Z3foob: ; SECTIONS_CFI: .cfi_offset %rbp, -16 Index: llvm/test/DebugInfo/X86/basic-block-sections_1.ll =================================================================== --- llvm/test/DebugInfo/X86/basic-block-sections_1.ll +++ llvm/test/DebugInfo/X86/basic-block-sections_1.ll @@ -1,7 +1,7 @@ ; RUN: llc -O0 %s -mtriple=x86_64-* -filetype=obj -o %t && llvm-dwarfdump -debug-info -v %t | FileCheck --check-prefix=NO-SECTIONS %s -; RUN: llc -O0 %s --basicblock-sections=all --unique-bb-section-names -mtriple=x86_64-* -filetype=obj -o %t && llvm-dwarfdump -debug-info -v %t | FileCheck --check-prefix=BB-SECTIONS %s -; RUN: llc -O0 %s --basicblock-sections=all --unique-bb-section-names -mtriple=x86_64-* -filetype=obj -split-dwarf-file=%t.dwo -o %t && llvm-dwarfdump -debug-info -v %t | FileCheck --check-prefix=BB-SECTIONS %s -; RUN: llc -O0 %s --basicblock-sections=all -mtriple=x86_64-* -filetype=asm -o - | FileCheck --check-prefix=BB-SECTIONS-ASM %s +; RUN: llc -O0 %s --basic-block-sections=all --unique-basic-block-section-names -mtriple=x86_64-* -filetype=obj -o %t && llvm-dwarfdump -debug-info -v %t | FileCheck --check-prefix=BB-SECTIONS %s +; RUN: llc -O0 %s --basic-block-sections=all --unique-basic-block-section-names -mtriple=x86_64-* -filetype=obj -split-dwarf-file=%t.dwo -o %t && llvm-dwarfdump -debug-info -v %t | FileCheck --check-prefix=BB-SECTIONS %s +; RUN: llc -O0 %s --basic-block-sections=all -mtriple=x86_64-* -filetype=asm -o - | FileCheck --check-prefix=BB-SECTIONS-ASM %s ; From: ; int foo(int a) {