Slide 116
Slide 116 text
define hidden swiftcc void @"$s1d5callByAA2BP_pAA1P_pF"(
%T1d2BPP* noalias nocapture sret(%T1d2BPP) %0,
%T1d1PP* noalias nocapture dereferenceable(40) %1) #0 {
entry:
%p.debug = alloca %T1d1PP*, align 8
%2 = bitcast %T1d1PP** %p.debug to i8*
call void @llvm.memset.p0i8.i64(i8* align 8 %2, i8 0, i64 8, i1 false)
store %T1d1PP* %1, %T1d1PP** %p.debug, align 8
%3 = getelementptr inbounds %T1d1PP, %T1d1PP* %1, i32 0, i32 1
%4 = load %swift.type*, %swift.type** %3, align 8
%5 = getelementptr inbounds %T1d1PP, %T1d1PP* %1, i32 0, i32 2
%6 = load i8**, i8*** %5, align 8
%7 = bitcast %T1d1PP* %1 to %__opaque_existential_type_1*
%8 = call %swift.opaque* @__swift_project_boxed_opaque_existential_1(%__opaque_existential_type_1* %7, %swift.type* %4) #4
%9 = getelementptr inbounds i8*, i8** %6, i32 6
%10 = load i8*, i8** %9, align 8, !invariant.load !39
%11 = bitcast i8* %10 to void (%swift.opaque*, %swift.opaque*, %swift.type*, i8**)*
%12 = call swiftcc %swift.metadata_response @swift_getAssociatedTypeWitness(
i64 0, i8** %6, %swift.type* %4,
%swift.protocol_requirement* getelementptr (
%swift.protocol_requirement, %swift.protocol_requirement* getelementptr inbounds (
<{ ... }>, <{ ... }>* @"$s1d1PMp", i32 0, i32 9
),
i32 -1
),
%swift.protocol_requirement* getelementptr inbounds (
<{ ... }>, <{ ... }>* @"$s1d1PMp", i32 0, i32 11
)
) #9
%13 = extractvalue %swift.metadata_response %12, 0
%14 = getelementptr inbounds %T1d2BPP, %T1d2BPP* %0, i32 0, i32 1
store %swift.type* %13, %swift.type** %14, align 8
%15 = call swiftcc i8** @swift_getAssociatedConformanceWitness(
i8** %6, %swift.type* %4, %swift.type* %13,
%swift.protocol_requirement* getelementptr (
%swift.protocol_requirement, %swift.protocol_requirement* getelementptr inbounds (
<{ ... }>, <{ ... }>* @"$s1d1PMp", i32 0, i32 9
),
i32 -1
),
%swift.protocol_requirement* getelementptr inbounds (
<{ ... }>, <{ ... }>* @"$s1d1PMp", i32 0, i32 9
)
) #9
%16 = getelementptr inbounds %T1d2BPP, %T1d2BPP* %0, i32 0, i32 2
store i8** %15, i8*** %16, align 8
%17 = getelementptr inbounds %T1d2BPP, %T1d2BPP* %0, i32 0, i32 0
%18 = getelementptr inbounds %T1d2BPP, %T1d2BPP* %0, i32 0, i32 0
%19 = bitcast %T1d2BPP* %0 to %__opaque_existential_type_1*
%20 = call %swift.opaque* @__swift_allocate_boxed_opaque_existential_1(%__opaque_existential_type_1* %19) #4
call swiftcc void %11(
%swift.opaque* noalias nocapture sret(%swift.opaque) %20,
%swift.opaque* noalias nocapture swiftself %8, %swift.type* %4, i8** %6
)
ret void
}
116