1 ; RUN: opt -module-summary -o %t %s 2 ; RUN: opt -module-summary -o %t2 %S/Inputs/dead-strip-fulllto.ll 3 4 ; RUN: llvm-lto2 run %t -r %t,main,px -r %t,live1,p -r %t,live2,p -r %t,dead2,p \ 5 ; RUN: %t2 -r %t2,live1, -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \ 6 ; RUN: -save-temps -o %t3 7 ; RUN: llvm-nm %t3.0 | FileCheck --check-prefix=FULL %s 8 ; RUN: llvm-nm %t3.1 | FileCheck --check-prefix=THIN %s 9 10 ; RUN: llvm-lto2 run %t -r %t,main,px -r %t,live1,p -r %t,live2,p -r %t,dead2,p \ 11 ; RUN: %t2 -r %t2,live1, -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \ 12 ; RUN: -save-temps -o %t3 -O0 13 ; RUN: llvm-nm %t3.0 | FileCheck --check-prefix=FULL %s 14 ; RUN: llvm-nm %t3.1 | FileCheck --check-prefix=THIN %s 15 16 ; FULL-NOT: dead 17 ; FULL: U live1 18 ; FULL: T live2 19 ; FULL: T main 20 21 ; THIN-NOT: dead 22 ; THIN: T live1 23 ; THIN: U live2 24 ; THIN-NOT: odr 25 26 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 27 target triple = "x86_64-unknown-linux-gnu" 28 29 define void @main() { 30 call void @live1() 31 ret void 32 } 33 34 declare void @live1() 35 36 define void @live2() { 37 ret void 38 } 39 40 define void @dead2() { 41 ret void 42 } 43 44 !0 = !{i32 1, !"ThinLTO", i32 0} 45 !llvm.module.flags = !{ !0 } 46