mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[ThinLTO] Disallow multiple prevailing defs
https://reviews.llvm.org/D41291 llvm-svn: 320825
This commit is contained in:
parent
5e10face9a
commit
cdd4b18b3c
@ -417,8 +417,8 @@ void LTO::addModuleToGlobalRes(ArrayRef<InputFile::Symbol> Syms,
|
||||
auto &GlobalRes = GlobalResolutions[Sym.getName()];
|
||||
GlobalRes.UnnamedAddr &= Sym.isUnnamedAddr();
|
||||
if (Res.Prevailing) {
|
||||
assert((GlobalRes.IRName.empty() || !Sym.getIRName().empty()) &&
|
||||
"Overriding existing resolution with undefined asm symbol");
|
||||
assert(GlobalRes.IRName.empty() &&
|
||||
"Multiple prevailing defs are not allowed");
|
||||
GlobalRes.IRName = Sym.getIRName();
|
||||
}
|
||||
|
||||
|
@ -52,24 +52,6 @@
|
||||
; RUN: -r %t2.bc,bar,px
|
||||
; RUN: llvm-dis < %t.o.0.0.preopt.bc | FileCheck %s --check-prefix=NONE-PREVAILED2
|
||||
|
||||
|
||||
|
||||
; Client marked both as prevailing
|
||||
; RUN: llvm-lto2 run %t1.bc %t2.bc -o %t.o -save-temps \
|
||||
; RUN: -r %t1.bc,v,px \
|
||||
; RUN: -r %t2.bc,v,px \
|
||||
; RUN: -r %t1.bc,foo,px \
|
||||
; RUN: -r %t2.bc,bar,px
|
||||
; RUN: llvm-dis < %t.o.0.0.preopt.bc | FileCheck %s --check-prefix=BOTH-PREVAILED1
|
||||
|
||||
; Same as before, but reversing the order of the inputs
|
||||
; RUN: llvm-lto2 run %t2.bc %t1.bc -o %t.o -save-temps \
|
||||
; RUN: -r %t1.bc,v,px \
|
||||
; RUN: -r %t2.bc,v,px \
|
||||
; RUN: -r %t1.bc,foo,px \
|
||||
; RUN: -r %t2.bc,bar,px
|
||||
; RUN: llvm-dis < %t.o.0.0.preopt.bc | FileCheck %s --check-prefix=BOTH-PREVAILED2
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
; RUN: opt -module-summary -o %t2 %S/Inputs/dead-strip-fulllto.ll
|
||||
|
||||
; RUN: llvm-lto2 run %t -r %t,main,px -r %t,live1,p -r %t,live2,p -r %t,dead2,p \
|
||||
; RUN: %t2 -r %t2,live1,p -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \
|
||||
; RUN: %t2 -r %t2,live1, -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \
|
||||
; RUN: -save-temps -o %t3
|
||||
; RUN: llvm-nm %t3.0 | FileCheck --check-prefix=FULL %s
|
||||
; RUN: llvm-nm %t3.1 | FileCheck --check-prefix=THIN %s
|
||||
|
||||
; RUN: llvm-lto2 run %t -r %t,main,px -r %t,live1,p -r %t,live2,p -r %t,dead2,p \
|
||||
; RUN: %t2 -r %t2,live1,p -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \
|
||||
; RUN: %t2 -r %t2,live1, -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \
|
||||
; RUN: -save-temps -o %t3 -O0
|
||||
; RUN: llvm-nm %t3.0 | FileCheck --check-prefix=FULL %s
|
||||
; RUN: llvm-nm %t3.1 | FileCheck --check-prefix=THIN %s
|
||||
|
@ -16,7 +16,7 @@
|
||||
; RUN: -r %t1.bc,_boo,l \
|
||||
; RUN: -r %t2.bc,_baz,pl \
|
||||
; RUN: -r %t2.bc,_boo,pl \
|
||||
; RUN: -r %t2.bc,_dead_func,pl \
|
||||
; RUN: -r %t2.bc,_dead_func,l \
|
||||
; RUN: -r %t2.bc,_another_dead_func,pl
|
||||
; RUN: llvm-dis < %t.out.0.3.import.bc | FileCheck %s --check-prefix=LTO2
|
||||
; RUN: llvm-dis < %t.out.1.3.import.bc | FileCheck %s --check-prefix=LTO2-CHECK2
|
||||
@ -81,7 +81,7 @@
|
||||
; RUN: -r %t1.bc,_boo,l \
|
||||
; RUN: -r %t3.bc,_baz,pl \
|
||||
; RUN: -r %t3.bc,_boo,pl \
|
||||
; RUN: -r %t3.bc,_dead_func,pl \
|
||||
; RUN: -r %t3.bc,_dead_func,l \
|
||||
; RUN: -r %t3.bc,_another_dead_func,pl
|
||||
; RUN: llvm-dis < %t4.out.1.3.import.bc | FileCheck %s --check-prefix=CHECK-NOTDEAD
|
||||
; RUN: llvm-nm %t4.out.0 | FileCheck %s --check-prefix=CHECK-NM-NOTDEAD
|
||||
|
Loading…
Reference in New Issue
Block a user