mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
6bb0aa513e
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
19 lines
546 B
LLVM
19 lines
546 B
LLVM
; RUN: opt -module-summary -o %t.bc %s
|
|
|
|
; 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
|
|
|
|
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
@foo = ifunc i32 (i32), i64 ()* @foo_ifunc
|
|
|
|
define internal i64 @foo_ifunc() {
|
|
entry:
|
|
ret i64 0
|
|
}
|