mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
f42cbce2da
Add user-supplied C runtime and compiler-rt library functions to llvm.compiler.used to protect them from premature optimization by passes like -globalopt and -ipsccp. Calls to (seemingly unused) runtime library functions can be added by -instcombine and instruction lowering. Patch by Duncan Exon Smith, thanks! Fixes <rdar://problem/14740087> llvm-svn: 194514
28 lines
487 B
LLVM
28 lines
487 B
LLVM
; runtime library implementations should be added to llvm.compiler.used
|
|
; RUN: llvm-as <%s >%t1
|
|
; RUN: llvm-lto -o %t2 %t1
|
|
; RUN: llvm-nm -no-sort %t2 | FileCheck %s -check-prefix=KEEP -check-prefix=LOSE
|
|
|
|
target triple = "x86_64-apple-darwin9"
|
|
|
|
; KEEP-LABEL: _puts
|
|
define void @puts() {
|
|
ret void
|
|
}
|
|
|
|
; KEEP-LABEL: ___divti3
|
|
define void @__divti3() {
|
|
ret void
|
|
}
|
|
|
|
; KEEP-LABEL: _memset
|
|
define void @memset() {
|
|
ret void
|
|
}
|
|
|
|
; LOSE-NOT: _myprintf
|
|
define void @myprintf() {
|
|
ret void
|
|
}
|
|
|