Files
Mircea Trofin 61a18adb3c [NFC][ThinLTO] Check that refs between split modules have the same GUID (#182982)
Right now, the GUIDs are computed from the names with the hash suffix.
Once we land [this
RFC](https://discourse.llvm.org/t/rfc-keep-globalvalue-guids-stable/84801),
we'll want to use the original symbol's GUID, and also ensure any refs
to such symbols (in the case of a split module) keep that GUID. This
test prepares that.

Note that an effect of the aforementioned RFC is that the GUIDs will be
different from the ones checked in the test (but will still be the same
wrt eachother)
2026-02-24 18:16:35 +00:00

41 lines
1.4 KiB
LLVM

; REQUIRES: x86-registered-target
; RUN: opt -thinlto-bc -thinlto-split-lto-unit -o %t %s
; RUN: llvm-modextract -b -n 0 -o %t0 %t
; RUN: llvm-modextract -b -n 1 -o %t1 %t
; RUN: not llvm-modextract -b -n 2 -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s
; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=M0 %s
; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=M1 %s
; RUN: llvm-bcanalyzer -dump %t0 | FileCheck --check-prefix=BCA0 %s
; RUN: llvm-bcanalyzer -dump %t1 | FileCheck --check-prefix=BCA1 %s
target triple = "x86_64-unknown-linux-gnu"
; ERROR: llvm-modextract: error: module index out of range; bitcode file contains 2 module(s)
; BCA0: <GLOBALVAL_SUMMARY_BLOCK
; BCA1-NOT: <GLOBALVAL_SUMMARY_BLOCK
; M0: @g = external global ptr{{$}}
; M1: @g = global ptr @f.13757e0fb71915e385efa4dc9d1e08fd, !type !0
@g = global ptr @f, !type !0
; M0: define hidden void @f.13757e0fb71915e385efa4dc9d1e08fd()
; M1: declare hidden void @f.13757e0fb71915e385efa4dc9d1e08fd()
define internal void @f() {
call void @f2()
ret void
}
; M0: define internal void @f2()
define internal void @f2() {
ret void
}
; M1: !0 = !{i32 0, !"typeid"}
!0 = !{i32 0, !"typeid"}
; test that the GUID of f.<hash> is the same in the summaries of the 2 split
; modules
; M0: = gv: (name: "f.13757e0fb71915e385efa4dc9d1e08fd", {{.*}} ; guid = 11302379072751562722
; M1: = gv: (name: "f.13757e0fb71915e385efa4dc9d1e08fd") ; guid = 11302379072751562722