1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/ThinLTO/X86/builtin-nostrip.ll
Amy Huang 062b5d40cb Reland "Change the X86 datalayout to add three address spaces
for 32 bit signed, 32 bit unsigned, and 64 bit pointers."
This reverts 57076d3199fc2b0af4a3736b7749dd5462cacda5.

Original review at https://reviews.llvm.org/D64931.
Review for added fix at https://reviews.llvm.org/D66843.

llvm-svn: 371568
2019-09-10 23:15:38 +00:00

60 lines
2.2 KiB
LLVM

; REQUIRES: x86-registered-target
; Compile with thinlto indices, to enable thinlto.
; RUN: opt -module-summary %s -o %t1.bc
; Test old lto interface with thinlto (currently known to be broken, so
; the FileCheck line is commented out).
; FIXME: The new LTO implementation has been fixed to not internalize
; (and later dead-code-eliminate) builtin functions. However the old LTO
; implementation still internalizes them, and when used with ThinLTO they
; get dead-code eliminated before the optimizations run that insert calls
; to them (thus breaking these inserted calls). This needs to be fixed.
; RUN: llvm-lto -exported-symbol=main -thinlto-action=run %t1.bc
;;; RUN llvm-nm %t1.bc.thinlto.o | FileCheck %s --check-prefix=CHECK-NM
; Test new lto interface with thinlto.
; RUN: llvm-lto2 run %t1.bc -o %t.out -save-temps \
; RUN: -r %t1.bc,bar,pl \
; RUN: -r %t1.bc,__stack_chk_fail,pl
; RUN: llvm-nm %t.out.1 | FileCheck %s --check-prefix=CHECK-NM
;
; Re-compile, this time without the thinlto indices.
; RUN: opt %s -o %t4.bc
; Test the new lto interface without thinlto.
; RUN: llvm-lto2 run %t4.bc -o %t5.out -save-temps \
; RUN: -r %t4.bc,bar,pl \
; RUN: -r %t4.bc,__stack_chk_fail,pl
; RUN: llvm-nm %t5.out.0 | FileCheck %s --check-prefix=CHECK-NM
; Test the old lto interface without thinlto. For now we need to
; use a different nm check, because currently the old lto interface
; internalizes these symbols. Once the old lto interface gets
; fixed, we should be able to use the same CHECK-NM tests as the
; other FileChecks.
; RUN: llvm-lto -exported-symbol=main %t4.bc -o %t6
; RUN: llvm-nm %t6 | FileCheck %s --check-prefix=CHECK-NM2
; The final binary should not contain any of the dead functions;
; make sure memmove and memcpy are there.
; CHECK-NM-NOT: bar
; CHECK-NM-DAG: T __stack_chk_fail
; CHECK-NM-NOT: bar
; Test case for old lto without thinlto. Hopefully these can be
; eliminated once the old lto interface is fixed.
; CHECK-NM2-DAG: t __stack_chk_fail
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"
define void @bar() {
ret void
}
define void @__stack_chk_fail() {
ret void
}