1; RUN: opt -wholeprogramdevirt -wholeprogramdevirt-summary-action=export -wholeprogramdevirt-read-summary=%S/Inputs/export.yaml -wholeprogramdevirt-write-summary=%t -S -o - %s | FileCheck %s 2; RUN: FileCheck --check-prefix=SUMMARY %s < %t 3 4; SUMMARY: TypeIdMap: 5; SUMMARY-NEXT: typeid1: 6; SUMMARY-NEXT: TTRes: 7; SUMMARY-NEXT: Kind: Unsat 8; SUMMARY-NEXT: SizeM1BitWidth: 0 9; SUMMARY-NEXT: WPDRes: 10; SUMMARY-NEXT: 0: 11; SUMMARY-NEXT: Kind: SingleImpl 12; SUMMARY-NEXT: SingleImplName: vf1 13; SUMMARY-NEXT: ResByArg: 14; SUMMARY-NEXT: typeid2: 15; SUMMARY-NEXT: TTRes: 16; SUMMARY-NEXT: Kind: Unsat 17; SUMMARY-NEXT: SizeM1BitWidth: 0 18; SUMMARY-NEXT: WPDRes: 19; SUMMARY-NEXT: 0: 20; SUMMARY-NEXT: Kind: SingleImpl 21; SUMMARY-NEXT: SingleImplName: vf2 22; SUMMARY-NEXT: ResByArg: 23; SUMMARY-NEXT: typeid3: 24; SUMMARY-NEXT: TTRes: 25; SUMMARY-NEXT: Kind: Unsat 26; SUMMARY-NEXT: SizeM1BitWidth: 0 27; SUMMARY-NEXT: WPDRes: 28; SUMMARY-NEXT: 0: 29; SUMMARY-NEXT: Kind: SingleImpl 30; SUMMARY-NEXT: SingleImplName: vf3 31; SUMMARY-NEXT: ResByArg: 32; SUMMARY-NEXT: typeid4: 33; SUMMARY-NEXT: TTRes: 34; SUMMARY-NEXT: Kind: Unsat 35; SUMMARY-NEXT: SizeM1BitWidth: 0 36; SUMMARY-NEXT: WPDRes: 37; SUMMARY-NEXT: 0: 38; SUMMARY-NEXT: Kind: SingleImpl 39; SUMMARY-NEXT: SingleImplName: 'vf4$merged' 40; SUMMARY-NEXT: ResByArg: 41; SUMMARY-NEXT: ... 42 43; CHECK: @vt1 = constant void (i8*)* @vf1 44@vt1 = constant void (i8*)* @vf1, !type !0 45 46; CHECK: @vt2 = constant void (i8*)* @vf2 47@vt2 = constant void (i8*)* @vf2, !type !1 48 49@vt3 = constant void (i8*)* @vf3, !type !2 50 51; CHECK: @vt4 = constant void (i8*)* @"vf4$merged" 52@vt4 = constant void (i8*)* @vf4, !type !3 53 54@vt5 = constant void (i8*)* @vf5, !type !4 55 56; CHECK: declare void @vf1(i8*) 57declare void @vf1(i8*) 58 59; CHECK: define void @vf2(i8*) 60define void @vf2(i8*) { 61 ret void 62} 63 64declare void @vf3(i8*) 65 66; CHECK: define hidden void @"vf4$merged" 67define internal void @vf4(i8*) { 68 ret void 69} 70 71declare void @vf5(i8*) 72 73!0 = !{i32 0, !"typeid1"} 74!1 = !{i32 0, !"typeid2"} 75!2 = !{i32 0, !"typeid3"} 76!3 = !{i32 0, !"typeid4"} 77!4 = !{i32 0, !5} 78!5 = distinct !{} 79