Slide 9
Slide 9 text
$ diff class-func.sil static-func.sil
※1
@@ -7,8 +7,9 @@ import SwiftShims
// main
sil @main : $@convention(c) (Int32, UnsafeMutablePointer>>) -> Int32 {
bb0(%0 : $Int32, %1 : $UnsafeMutablePointer>>):
- %2 = metatype $@thick Main.Type // users: %4, %3
- %3 = class_method %2 : $@thick Main.Type, #Main.say!1 : (Main.Type) -> () -> (), $@convention(method) (@thick Main.Typ
() // user: %4
+ %2 = metatype $@thick Main.Type // user: %4
+ // function_ref static Main.say()
+ %3 = function_ref @_T04main4MainC3sayyyFZ : $@convention(method) (@thick Main.Type) -> () // user: %4
%4 = apply %3(%2) : $@convention(method) (@thick Main.Type) -> ()
%5 = integer_literal $Builtin.Int32, 0 // user: %6
%6 = struct $Int32 (%5 : $Builtin.Int32) // user: %7
@@ -117,7 +118,6 @@ bb0(%0 : $Main):
} // end sil function '_T04main4MainCACycfc'
sil_vtable Main {
- #Main.say!1: (Main.Type) -> () -> () : _T04main4MainC3sayyyFZ // static Main.say()
#Main.init!initializer.1: (Main.Type) -> () -> Main : _T04main4MainCACycfc // Main.init()
#Main.deinit!deallocator: _T04main4MainCfD // Main.__deallocating_deinit
}
※1: લޙͷίʔυΛදࣔͤ͞ΔͨΊɼdiffʹgitΛར༻͍ͯ͠·͢ɻ