2017-12-16 10:10:00 +08:00
|
|
|
; RUN: opt -module-summary -o %t.bc %s
|
|
|
|
|
[LTO] Suppress emission of empty combined module by default
Summary:
That unless the user requested an output object (--lto-obj-path), the an
unused empty combined module is not emitted.
This changed is helpful for some target (ex. RISCV-V) which encoded the
ABI info in IR module flags (target-abi). Empty unused module has no ABI
info so the linker would get the linking error during merging
incompatible ABIs.
Reviewers: tejohnson, espindola, MaskRay
Subscribers: emaste, inglorion, arichardson, hiraditya, simoncook, MaskRay, steven_wu, dexonsmith, PkmX, dang, lenary, s.egerton, luismarques, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78988
2020-04-28 11:04:36 +08:00
|
|
|
; RUN: rm -f %t2.*
|
|
|
|
; RUN: llvm-lto2 run %t.bc -r %t.bc,foo,pl -o %t2 -thinlto-distributed-indexes -save-temps
|
|
|
|
; Ensure lto does not emit empty combined module.
|
|
|
|
; RUN: test ! -e %t2.0
|
|
|
|
; Ensure empty combined module has only 2 temp files.
|
|
|
|
; RUN: ls %t2.0.*.bc | count 2
|
2017-12-16 10:10:00 +08:00
|
|
|
|
2019-09-11 07:15:38 +08:00
|
|
|
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
2017-12-16 10:10:00 +08:00
|
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
|
|
|
|
@foo = ifunc i32 (i32), i64 ()* @foo_ifunc
|
|
|
|
|
|
|
|
define internal i64 @foo_ifunc() {
|
|
|
|
entry:
|
|
|
|
ret i64 0
|
|
|
|
}
|