1 ; This test verifies whether an outlined function is encoded into the __llvm_outline section
2 ; when the -codegen-data-generate flag is used.
4 ; Verify whether an outlined function is always created, but only encoded into the section when the flag is used.
5 ; RUN: llc -mtriple=arm64-apple-darwin -enable-machine-outliner -codegen-data-generate=true -filetype=obj %s -o %t_save
6 ; RUN: llvm-objdump -d %t_save | FileCheck %s
7 ; RUN: llvm-objdump -h %t_save | FileCheck %s --check-prefix=SECTNAME
8 ; RUN: llc -mtriple=arm64-apple-darwin -enable-machine-outliner -codegen-data-generate=false -filetype=obj %s -o %t_nosave
9 ; RUN: llvm-objdump -d %t_nosave | FileCheck %s
10 ; RUN: llvm-objdump -h %t_nosave | FileCheck %s --check-prefix=NOSECTNAME
12 ; CHECK: _OUTLINED_FUNCTION
16 ; SECTNAME: __llvm_outline
17 ; NOSECTNAME-NOT: __llvm_outline
19 ; Verify the content of cgdata after it has been processed with llvm-cgdata.
20 ; RUN: llvm-cgdata --merge %t_save -o %t_cgdata
21 ; RUN: llvm-cgdata --convert %t_cgdata | FileCheck %s --check-prefix=TREE
23 ; TREE: :outlined_hash_tree
26 ; TREE-NEXT: Hash: 0x0
27 ; TREE-NEXT: Terminals: 0
28 ; TREE-NEXT: SuccessorIds: [ 1 ]
30 ; TREE-NEXT: Hash: {{.}}
31 ; TREE-NEXT: Terminals: 0
32 ; TREE-NEXT: SuccessorIds: [ 2 ]
34 ; TREE-NEXT: Hash: {{.}}
35 ; TREE-NEXT: Terminals: 0
36 ; TREE-NEXT: SuccessorIds: [ 3 ]
38 ; TREE-NEXT: Hash: {{.}}
39 ; TREE-NEXT: Terminals: 2
40 ; TREE-NEXT: SuccessorIds: [ ]
43 declare i32 @g(i32, i32, i32)
44 define i32 @f1() minsize {
45 %1 = call i32 @g(i32 10, i32 1, i32 2);
48 define i32 @f2() minsize {
49 %1 = call i32 @g(i32 20, i32 1, i32 2);