mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
This change doesn't fix the root cause of the miscompile PR34966 as the root cause is in the linker ld64. This change makes call graph more complete allowing to have better module imports/exports. rdar://problem/35344706 Reviewers: tejohnson Reviewed By: tejohnson Subscribers: mehdi_amini, inglorion, eraman, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D39356 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317853 91177308-0d34-0410-b5e6-96231b3b80d8
32 lines
965 B
LLVM
32 lines
965 B
LLVM
; Test to check the callgraph for calls to casts.
|
|
; RUN: opt -module-summary %s -o %t.o
|
|
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
|
|
; PR34966
|
|
|
|
; CHECK: <GLOBALVAL_SUMMARY_BLOCK
|
|
; CHECK-NEXT: <VERSION
|
|
; "op7=1" is a call to "callee" function.
|
|
; CHECK-NEXT: <PERMODULE {{.*}} op7=1 op8=[[ALIASID:[0-9]+]]/>
|
|
; CHECK-NEXT: <PERMODULE {{.*}} op0=[[ALIASEEID:[0-9]+]]
|
|
; CHECK-NEXT: <ALIAS {{.*}} op0=[[ALIASID]] {{.*}} op2=[[ALIASEEID]]/>
|
|
; CHECK-NEXT: </GLOBALVAL_SUMMARY_BLOCK>
|
|
|
|
; ModuleID = 'thinlto-function-summary-callgraph-cast.ll'
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
define void @caller() {
|
|
call void bitcast (void (...)* @callee to void ()*)()
|
|
call void bitcast (void (...)* @analias to void ()*)()
|
|
ret void
|
|
}
|
|
|
|
declare void @callee(...)
|
|
|
|
@analias = alias void (...), bitcast (void ()* @aliasee to void (...)*)
|
|
|
|
define void @aliasee() {
|
|
entry:
|
|
ret void
|
|
}
|