sil @main : $@convention(c) (Int32, UnsafeMutablePointer<UnsafeMutablePointer<Int8>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<UnsafeMutablePointer<Int8>>): // function_ref Swift._didEnterMain (Swift.Int32, argv : Swift.UnsafeMutablePointer<Swift.UnsafeMutablePointer<Swift.Int8>>) -> () %2 = function_ref @Swift._didEnterMain (Swift.Int32, argv : Swift.UnsafeMutablePointer<Swift.UnsafeMutablePointer<Swift.Int8>>) -> () : $@convention(thin) (Int32, UnsafeMutablePointer<UnsafeMutablePointer<Int8>>) -> () // user: %3 %3 = apply %2(%0, %1) : $@convention(thin) (Int32, UnsafeMutablePointer<UnsafeMutablePointer<Int8>>) -> () // function_ref Swift.print (Swift.Array<protocol<>>, separator : Swift.String, terminator : Swift.String) -> () %4 = function_ref @Swift.print ([protocol<>], separator : Swift.String, terminator : Swift.String) -> () : $@convention(thin) (@owned Array<protocol<>>, @owned String, @owned String) -> () // user: %23 %5 = integer_literal $Builtin.Word, 1 // user: %7 // function_ref Swift._allocateUninitializedArray <A> (Builtin.Word) -> (Swift.Array<A>, Builtin.RawPointer) %6 = function_ref @Swift._allocateUninitializedArray <A> (Builtin.Word) -> ([A], Builtin.RawPointer) : $@convention(thin) <τ_0_0> (Builtin.Word) -> @owned (Array<τ_0_0>, Builtin.RawPointer) // user: %7 %7 = apply %6<protocol<>>(%5) : $@convention(thin) <τ_0_0> (Builtin.Word) -> @owned (Array<τ_0_0>, Builtin.RawPointer) // users: %8, %9 %8 = tuple_extract %7 : $(Array<protocol<>>, Builtin.RawPointer), 0 // user: %23 %9 = tuple_extract %7 : $(Array<protocol<>>, Builtin.RawPointer), 1 // user: %10 %10 = pointer_to_address %9 : $Builtin.RawPointer to $*protocol<> // user: %11 %11 = init_existential_addr %10 : $*protocol<>, $String // user: %18 // function_ref Swift.String.init (Swift.String.Type)(_builtinStringLiteral : Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String %12 = function_ref @Swift.String.init (Swift.String.Type)(_builtinStringLiteral : Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %17 %13 = metatype $@thin String.Type // user: %17 %14 = string_literal utf8 "hello swift!" // user: %17 %15 = integer_literal $Builtin.Word, 12 // user: %17 %16 = integer_literal $Builtin.Int1, -1 // user: %17 %17 = apply %12(%14, %15, %16, %13) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %18 store %17 to %11 : $*String // id: %18 // function_ref Swift.(print (Swift.Array<protocol<>>, separator : Swift.String, terminator : Swift.String) -> ()).(default argument 1) %19 = function_ref @Swift.(print ([protocol<>], separator : Swift.String, terminator : Swift.String) -> ()).(default argument 1) : $@convention(thin) () -> @owned String // user: %20 %20 = apply %19() : $@convention(thin) () -> @owned String // user: %23 // function_ref Swift.(print (Swift.Array<protocol<>>, separator : Swift.String, terminator : Swift.String) -> ()).(default argument 2) %21 = function_ref @Swift.(print ([protocol<>], separator : Swift.String, terminator : Swift.String) -> ()).(default argument 2) : $@convention(thin) () -> @owned String // user: %22 %22 = apply %21() : $@convention(thin) () -> @owned String // user: %23 %23 = apply %4(%8, %20, %22) : $@convention(thin) (@owned Array<protocol<>>, @owned String, @owned String) -> () %24 = integer_literal $Builtin.Int32, 0 // user: %25 %25 = struct $Int32 (%24 : $Builtin.Int32) // user: %26 return %25 : $Int32 // id: %26 } SIL (raw)