mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-20 19:42:54 +02:00
8d0d8c3f01
Now that we have a way to mark GlobalValues as local we can use the symbol resolutions that the linker plugin provides as part of lto/thinlto link step to refine the compilers view on what symbols will end up being local. Originally commited as r317374, but reverted in r317395 to update some missed tests. Differential Revision: https://reviews.llvm.org/D35702 llvm-svn: 317408
29 lines
941 B
LLVM
29 lines
941 B
LLVM
; RUN: opt -module-summary %s -o %t1.bc
|
|
; RUN: opt -module-summary %p/Inputs/reference_non_importable.ll -o %t2.bc
|
|
|
|
; RUN: llvm-lto2 run %t1.bc %t2.bc -o %t.o -save-temps \
|
|
; RUN: -r=%t1.bc,_foo,pxl \
|
|
; RUN: -r=%t1.bc,_b,pxl \
|
|
; RUN: -r=%t2.bc,_main,pxl \
|
|
; RUN: -r=%t2.bc,_foo,xl
|
|
|
|
|
|
|
|
|
|
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-apple-macosx10.11.0"
|
|
|
|
; We shouldn't promote the private because it has a section
|
|
; RUN: llvm-dis < %t.o.0.2.internalize.bc | FileCheck %s --check-prefix=PROMOTE
|
|
; PROMOTE: @a = private global i8 0, section "__TEXT,__cstring,cstring_literals"
|
|
@a = private global i8 0, section "__TEXT,__cstring,cstring_literals"
|
|
@b = global i8 *@a
|
|
|
|
|
|
; We want foo to be imported in the main module!
|
|
; RUN: llvm-dis < %t.o.1.3.import.bc | FileCheck %s --check-prefix=IMPORT
|
|
; IMPORT: define available_externally dso_local i8** @foo()
|
|
define i8 **@foo() {
|
|
ret i8 **@b
|
|
}
|