[lld] a77afc6 - New test for basic block sections options.

Sriraman Tallam via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 31 12:03:43 PDT 2020


Author: Sriraman Tallam
Date: 2020-07-31T12:02:52-07:00
New Revision: a77afc62d9e48c334e5a7a03fe6ffe3b614742d5

URL: https://github.com/llvm/llvm-project/commit/a77afc62d9e48c334e5a7a03fe6ffe3b614742d5
DIFF: https://github.com/llvm/llvm-project/commit/a77afc62d9e48c334e5a7a03fe6ffe3b614742d5.diff

LOG: New test for basic block sections options.

This tests lld basic block sections options:
+ --lto-basic-block-sections=
+ --lto-unique-basic-block-section-names

Differential Revision: https://reviews.llvm.org/D84462

Added: 
    lld/test/ELF/lto/basic-block-sections.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/lld/test/ELF/lto/basic-block-sections.ll b/lld/test/ELF/lto/basic-block-sections.ll
new file mode 100644
index 000000000000..04cd296262b1
--- /dev/null
+++ b/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
+}


        


More information about the llvm-commits mailing list