mono0926
12/26/2016 - 10:15 AM

sil.sil

sil_stage raw

import Builtin
import Swift
import SwiftShims

// x
sil_global hidden [let] @_Tv4main1xSS : $String

sil_scope 1 {  parent @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 }

// main
sil @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 {
// %0                                             // user: %3
// %1                                             // user: %3
bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>):
  // function_ref _stdlib_didEnterMain(argc : Int32, argv : UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>) -> ()
  %2 = function_ref @_TFs20_stdlib_didEnterMainFT4argcVs5Int324argvGSpGSqGSpVs4Int8____T_ : $@convention(thin) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> (), scope 1 // user: %3
  %3 = apply %2(%0, %1) : $@convention(thin) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> (), scope 1
  alloc_global @_Tv4main1xSS, loc "<stdin>":1:5, scope 1 // id: %4
  %5 = global_addr @_Tv4main1xSS : $*String, loc "<stdin>":1:5, scope 1 // users: %21, %12
  %6 = string_literal utf16 "( ´・‿・`)", loc "<stdin>":1:9, scope 1 // user: %11
  %7 = integer_literal $Builtin.Word, 8, loc "<stdin>":1:9, scope 1 // user: %11
  %8 = integer_literal $Builtin.Int1, 0, loc "<stdin>":1:9, scope 1
  %9 = metatype $@thin String.Type, loc "<stdin>":1:9, scope 1 // user: %11
  // function_ref String.init(_builtinUTF16StringLiteral : Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> String
  %10 = function_ref @_TFSSCfT26_builtinUTF16StringLiteralBp18utf16CodeUnitCountBw_SS : $@convention(method) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String, loc "<stdin>":1:9, scope 1 // user: %11
  %11 = apply %10(%6, %7, %9) : $@convention(method) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String, loc "<stdin>":1:9, scope 1 // user: %12
  store %11 to %5 : $*String, loc "<stdin>":1:9, scope 1 // id: %12
  // function_ref print([Any], separator : String, terminator : String) -> ()
  %13 = function_ref @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_ : $@convention(thin) (@owned Array<Any>, @owned String, @owned String) -> (), loc "<stdin>":2:1, scope 1 // user: %28
  %14 = integer_literal $Builtin.Word, 1, loc "<stdin>":2:7, scope 1 // user: %16
  // function_ref _allocateUninitializedArray<A> (Builtin.Word) -> ([A], Builtin.RawPointer)
  %15 = function_ref @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_ : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer), loc "<stdin>":2:7, scope 1 // user: %16
  %16 = apply %15<Any>(%14) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer), loc "<stdin>":2:7, scope 1 // users: %18, %17
  %17 = tuple_extract %16 : $(Array<Any>, Builtin.RawPointer), 0, loc "<stdin>":2:7, scope 1 // user: %28
  %18 = tuple_extract %16 : $(Array<Any>, Builtin.RawPointer), 1, loc "<stdin>":2:7, scope 1 // user: %19
  %19 = pointer_to_address %18 : $Builtin.RawPointer to [strict] $*Any, loc "<stdin>":2:7, scope 1 // user: %20
  %20 = init_existential_addr %19 : $*Any, $String, loc "<stdin>":2:7, scope 1 // user: %23
  %21 = load %5 : $*String, loc "<stdin>":2:7, scope 1 // users: %23, %22
  retain_value %21 : $String, loc "<stdin>":2:7, scope 1 // id: %22
  store %21 to %20 : $*String, loc "<stdin>":2:7, scope 1 // id: %23
  // function_ref (print([Any], separator : String, terminator : String) -> ()).(default argument 1)
  %24 = function_ref @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_ : $@convention(thin) () -> @owned String, loc "<stdin>":2:7, scope 1 // user: %25
  %25 = apply %24() : $@convention(thin) () -> @owned String, loc "<stdin>":2:7, scope 1 // user: %28
  // function_ref (print([Any], separator : String, terminator : String) -> ()).(default argument 2)
  %26 = function_ref @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_ : $@convention(thin) () -> @owned String, loc "<stdin>":2:7, scope 1 // user: %27
  %27 = apply %26() : $@convention(thin) () -> @owned String, loc "<stdin>":2:7, scope 1 // user: %28
  %28 = apply %13(%17, %25, %27) : $@convention(thin) (@owned Array<Any>, @owned String, @owned String) -> (), loc "<stdin>":2:8, scope 1
  %29 = integer_literal $Builtin.Int32, 0, scope 1 // user: %30
  %30 = struct $Int32 (%29 : $Builtin.Int32), scope 1 // user: %31
  return %30 : $Int32, scope 1                    // id: %31
}


// _stdlib_didEnterMain(argc : Int32, argv : UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>) -> ()
sil [transparent] [fragile] @_TFs20_stdlib_didEnterMainFT4argcVs5Int324argvGSpGSqGSpVs4Int8____T_ : $@convention(thin) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> ()


// String.init(_builtinUTF16StringLiteral : Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> String
sil [readonly] [_semantics "string.makeUTF16"] @_TFSSCfT26_builtinUTF16StringLiteralBp18utf16CodeUnitCountBw_SS : $@convention(method) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String


// print([Any], separator : String, terminator : String) -> ()
sil [noinline] [_semantics "stdlib_binary_only"] @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_ : $@convention(thin) (@owned Array<Any>, @owned String, @owned String) -> ()


// _allocateUninitializedArray<A> (Builtin.Word) -> ([A], Builtin.RawPointer)
sil [fragile] [always_inline] @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_ : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer)


// (print([Any], separator : String, terminator : String) -> ()).(default argument 1)
sil [noinline] [_semantics "stdlib_binary_only"] @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_ : $@convention(thin) () -> @owned String


// (print([Any], separator : String, terminator : String) -> ()).(default argument 2)
sil [noinline] [_semantics "stdlib_binary_only"] @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_ : $@convention(thin) () -> @owned String