[llvm] r320825 - [ThinLTO] Disallow multiple prevailing defs

Eugene Leviant via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 15 08:27:33 PST 2017


Author: evgeny777
Date: Fri Dec 15 08:27:33 2017
New Revision: 320825

URL: http://llvm.org/viewvc/llvm-project?rev=320825&view=rev
Log:
[ThinLTO] Disallow multiple prevailing defs

https://reviews.llvm.org/D41291

Modified:
    llvm/trunk/lib/LTO/LTO.cpp
    llvm/trunk/test/LTO/Resolution/X86/common2.ll
    llvm/trunk/test/LTO/Resolution/X86/dead-strip-fulllto.ll
    llvm/trunk/test/ThinLTO/X86/deadstrip.ll

Modified: llvm/trunk/lib/LTO/LTO.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTO.cpp?rev=320825&r1=320824&r2=320825&view=diff
==============================================================================
--- llvm/trunk/lib/LTO/LTO.cpp (original)
+++ llvm/trunk/lib/LTO/LTO.cpp Fri Dec 15 08:27:33 2017
@@ -417,8 +417,8 @@ void LTO::addModuleToGlobalRes(ArrayRef<
     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();
     }
 

Modified: llvm/trunk/test/LTO/Resolution/X86/common2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/LTO/Resolution/X86/common2.ll?rev=320825&r1=320824&r2=320825&view=diff
==============================================================================
--- llvm/trunk/test/LTO/Resolution/X86/common2.ll (original)
+++ llvm/trunk/test/LTO/Resolution/X86/common2.ll Fri Dec 15 08:27:33 2017
@@ -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"
 

Modified: llvm/trunk/test/LTO/Resolution/X86/dead-strip-fulllto.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/LTO/Resolution/X86/dead-strip-fulllto.ll?rev=320825&r1=320824&r2=320825&view=diff
==============================================================================
--- llvm/trunk/test/LTO/Resolution/X86/dead-strip-fulllto.ll (original)
+++ llvm/trunk/test/LTO/Resolution/X86/dead-strip-fulllto.ll Fri Dec 15 08:27:33 2017
@@ -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

Modified: llvm/trunk/test/ThinLTO/X86/deadstrip.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/ThinLTO/X86/deadstrip.ll?rev=320825&r1=320824&r2=320825&view=diff
==============================================================================
--- llvm/trunk/test/ThinLTO/X86/deadstrip.ll (original)
+++ llvm/trunk/test/ThinLTO/X86/deadstrip.ll Fri Dec 15 08:27:33 2017
@@ -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




More information about the llvm-commits mailing list