llvm-project/llvm/test/tools/gold/X86/Inputs/thinlto_weak_resolution.ll
Teresa Johnson 35e0204eec [ThinLTO/gold] Perform index-based weak/linkonce resolution
Summary:
Invoke the weak/linkonce symbol resolution support (already used by
libLTO) that operates via the summary index.

This ensures prevailing linkonce are kept, by making them weak, and
marks preempted copies as available_externally when possible.

With this change, the older support for keeping the prevailing linkonce
(by changing their symbol resolution) is removed.

Reviewers: mehdi_amini

Subscribers: llvm-commits, mehdi_amini

Differential Revision: http://reviews.llvm.org/D22302

llvm-svn: 275474
2016-07-14 21:13:24 +00:00

38 lines
738 B
LLVM

target triple = "x86_64-unknown-linux-gnu"
; Alias are not optimized
@linkonceodralias = linkonce_odr alias void (), void ()* @linkonceodrfuncwithalias
; Alias are not optimized
@linkoncealias = linkonce alias void (), void ()* @linkoncefuncwithalias
; Function with an alias are not optimized
define linkonce_odr void @linkonceodrfuncwithalias() #0 {
entry:
ret void
}
; Function with an alias are not optimized
define linkonce void @linkoncefuncwithalias() #0 {
entry:
ret void
}
define linkonce_odr void @linkonceodrfunc() #0 {
entry:
ret void
}
define linkonce void @linkoncefunc() #0 {
entry:
ret void
}
define weak_odr void @weakodrfunc() #0 {
entry:
ret void
}
define weak void @weakfunc() #0 {
entry:
ret void
}