Avatar
SwiftとLLVMについて初心者なので質問です。 最適化について調べていて、SILやLLVM IRを見てたら生成されたコードに下記のように main の定義があるんですが、これは SILNM.cpp に定義されてる main funcのことですか? 空のswiftファイルに対して swiftc -emit-sil empty.swift を実行した結果が下記のとおりです。 sil_stage canonical import Builtin import Swift import SwiftShims // main sil @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>): %2 = integer_literal $Builtin.Int32, 0 // user: %3 %3 = struct $Int32 (%2 : $Builtin.Int32) // user: %4 return %3 : $Int32 // id: %4 } // end sil function 'main'