Slide 75
Slide 75 text
associatedtype ͕ ͋Δ ͱ͖
define hidden swiftcc i64 @"$S4main6useCatySiAA0C0VF"(i64) #0 {
entry:
%1 = alloca %T4main3CatV, align 8
%2 = bitcast %T4main3CatV* %1 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %2)
%.value = getelementptr inbounds %T4main3CatV, %T4main3CatV* %1, i32 0, i32 0
%.value._value = getelementptr inbounds %TSi, %TSi* %.value, i32 0, i32 0
store i64 %0, i64* %.value._value, align 8
%3 = bitcast %T4main3CatV* %1 to %swift.opaque*
%4 = call swiftcc i64 @"$S4main9useAnimalySixAA0C0RzSi5ValueRtzlF"(
%swift.opaque* noalias nocapture %3,
%swift.type* bitcast (
i64* getelementptr inbounds (
<{ i8**, i64, <{ i32, i32, i32, i32, i32, i32 }>*, i32, [4 x i8] }>,
<{ i8**, i64, <{ i32, i32, i32, i32, i32, i32 }>*, i32, [4 x i8] }>* @"$S4main3CatVMf",
i32 0, i32 1
) to %swift.type*
),
i8** getelementptr inbounds ([3 x i8*], [3 x i8*]* @"$S4main3CatVAA6AnimalAAWP", i32 0, i32 0)
)
%5 = bitcast %T4main3CatV* %1 to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %5)
ret i64 %4
}
useCat ͷ LLVM IR