mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
85c3314674
Any unsuccessful llvm.type.checked.load devirtualizations will be translated into uses of llvm.type.test, so we need to add the resulting llvm.type.test intrinsics to the function summaries so that the LowerTypeTests pass will export them. Differential Revision: https://reviews.llvm.org/D29808 llvm-svn: 296939
31 lines
1007 B
LLVM
31 lines
1007 B
LLVM
; RUN: opt -wholeprogramdevirt -wholeprogramdevirt-summary-action=export -wholeprogramdevirt-read-summary=%S/Inputs/export.yaml -wholeprogramdevirt-write-summary=%t -o /dev/null %s
|
|
; RUN: FileCheck %s < %t
|
|
|
|
; CHECK: - TypeTests:
|
|
; CHECK-NEXT: - 15427464259790519041
|
|
; CHECK-NEXT: - 17525413373118030901
|
|
; CHECK-NEXT: TypeTestAssumeVCalls:
|
|
|
|
@vt1a = constant void (i8*)* @vf1a, !type !0
|
|
@vt1b = constant void (i8*)* @vf1b, !type !0
|
|
@vt2a = constant void (i8*)* @vf2a, !type !1
|
|
@vt2b = constant void (i8*)* @vf2b, !type !1
|
|
@vt3a = constant void (i8*)* @vf3a, !type !2
|
|
@vt3b = constant void (i8*)* @vf3b, !type !2
|
|
@vt4a = constant void (i8*)* @vf4a, !type !3
|
|
@vt4b = constant void (i8*)* @vf4b, !type !3
|
|
|
|
declare void @vf1a(i8*)
|
|
declare void @vf1b(i8*)
|
|
declare void @vf2a(i8*)
|
|
declare void @vf2b(i8*)
|
|
declare void @vf3a(i8*)
|
|
declare void @vf3b(i8*)
|
|
declare void @vf4a(i8*)
|
|
declare void @vf4b(i8*)
|
|
|
|
!0 = !{i32 0, !"typeid1"}
|
|
!1 = !{i32 0, !"typeid2"}
|
|
!2 = !{i32 0, !"typeid3"}
|
|
!3 = !{i32 0, !"typeid4"}
|