llvm-project

Форк
0
/
keep-used-puts-during-instcombine.ll 
35 строк · 788.0 Байт
1
; RUN: opt -S -passes=instcombine <%s | FileCheck %s
2
; rdar://problem/16165191
3
; llvm.compiler.used functions should not be renamed
4

5
target triple = "x86_64-apple-darwin11"
6

7
@llvm.compiler.used = appending global [1 x ptr] [
8
  ptr @puts
9
  ], section "llvm.metadata"
10
@llvm.used = appending global [1 x ptr] [
11
  ptr @uses_printf
12
  ], section "llvm.metadata"
13

14
@str = private unnamed_addr constant [13 x i8] c"hello world\0A\00"
15

16
define i32 @uses_printf(i32 %i) {
17
entry:
18
  call i32 (ptr, ...) @printf(ptr @str)
19
  ret i32 0
20
}
21

22
define internal i32 @printf(ptr readonly nocapture %fmt, ...) {
23
entry:
24
  %ret = call i32 @bar(ptr %fmt)
25
  ret i32 %ret
26
}
27

28
; CHECK: define {{.*}} @puts(
29
define internal i32 @puts(ptr %s) {
30
entry:
31
  %ret = call i32 @bar(ptr %s)
32
  ret i32 %ret
33
}
34

35
declare i32 @bar(ptr)
36

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

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

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

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