llvm-project

Форк
0
/
icf-options.s 
67 строк · 2.3 Кб
1
# REQUIRES: x86
2
# RUN: rm -rf %t; mkdir %t
3

4
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/main.o
5
# RUN: %lld -lSystem --icf=all -o %t/all %t/main.o 2>&1 \
6
# RUN:     | FileCheck %s --check-prefix=DIAG-EMPTY --allow-empty
7
# RUN: %lld -lSystem --icf=none -o %t/none %t/main.o 2>&1 \
8
# RUN:     | FileCheck %s --check-prefix=DIAG-EMPTY --allow-empty
9
# RUN: %lld -lSystem -no_deduplicate -o %t/no_dedup %t/main.o 2>&1 \
10
# RUN:     | FileCheck %s --check-prefix=DIAG-EMPTY --allow-empty
11
# RUN: %lld -lSystem --icf=safe -o %t/safe %t/main.o 2>&1 \
12
# RUN:     | FileCheck %s --check-prefix=DIAG-EMPTY --allow-empty
13
# RUN: not %lld -lSystem --icf=junk -o %t/junk %t/main.o 2>&1 \
14
# RUN:     | FileCheck %s --check-prefix=DIAG-JUNK
15
# RUN: %lld -lSystem --icf=all -no_deduplicate -o %t/none2 %t/main.o 2>&1 \
16
# RUN:     | FileCheck %s --check-prefix=DIAG-EMPTY --allow-empty
17
# RUN: %lld -lSystem -no_deduplicate --icf=all -o %t/all2 %t/main.o 2>&1 \
18
# RUN:     | FileCheck %s --check-prefix=DIAG-EMPTY --allow-empty
19

20
# DIAG-EMPTY-NOT: {{.}}
21
# DIAG-JUNK: unknown --icf=OPTION `junk', defaulting to `none'
22

23
# RUN: llvm-objdump -d --syms %t/all | FileCheck %s --check-prefix=FOLD
24
# RUN: llvm-objdump -d --syms %t/all2 | FileCheck %s --check-prefix=FOLD
25
# RUN: llvm-objdump -d --syms %t/none | FileCheck %s --check-prefix=NOOP
26
# RUN: llvm-objdump -d --syms %t/none2 | FileCheck %s --check-prefix=NOOP
27
# RUN: llvm-objdump -d --syms %t/no_dedup | FileCheck %s --check-prefix=NOOP
28

29
# FOLD-LABEL: SYMBOL TABLE:
30
# FOLD:       [[#%x,MAIN:]] g   F __TEXT,__text _main
31
# FOLD:       [[#%x,F:]]    g   F __TEXT,__text _f1
32
# FOLD:       [[#%x,F]]     g   F __TEXT,__text _f2
33

34
# FOLD-LABEL: Disassembly of section __TEXT,__text:
35
# FOLD:       [[#%x,MAIN]] <_main>:
36
# FOLD-NEXT:  callq 0x[[#%x,F]]  <_f2>
37
# FOLD-NEXT:  callq 0x[[#%x,F]]  <_f2>
38

39
# NOOP-LABEL: SYMBOL TABLE:
40
# NOOP:       [[#%x,MAIN:]] g   F __TEXT,__text _main
41
# NOOP:       [[#%x,F1:]]   g   F __TEXT,__text _f1
42
# NOOP:       [[#%x,F2:]]   g   F __TEXT,__text _f2
43

44
# NOOP-LABEL: Disassembly of section __TEXT,__text:
45
# NOOP:       [[#%x,MAIN]] <_main>:
46
# NOOP-NEXT:  callq 0x[[#%x,F1]]  <_f1>
47
# NOOP-NEXT:  callq 0x[[#%x,F2]]  <_f2>
48

49
.subsections_via_symbols
50
.text
51
.p2align 2
52

53
.globl _f1
54
_f1:
55
  movl $0, %eax
56
  ret
57

58
.globl _f2
59
_f2:
60
  movl $0, %eax
61
  ret
62

63
.globl _main
64
_main:
65
  callq _f1
66
  callq _f2
67
  ret
68

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.