Swiftのコンパイラは複数のフェーズにわけて実行され、そのうちもっとも大きなものが SILの最適化です。SIL Optimizer はSwift特有のすべての最適化を担うので、SwiftのエンジニアがSILを理解しておくことは極めて重要だと考えます。このトークでは、SILの基礎を簡単な例を用いて説明します。
SIL入門
Swift中間言語SILの話です
メルカリです
Swiftコンパイラを学ぶビギナーです
共有すると初学者に役に立つと思いました
なぜSILを学ぶのか
Typeシステムの仕組みを学ぶのに良いです
たくさんの最適化がこのフェーズで走っているので最適化に興味があれば良いスターティングポイントです
そして単に楽しいです
言語固有の表現になります
コンパイラがあり、パイプラインが
ソースファイルからASTを作り、SIL、IR、成果物に鳴っていく
SILGen
サンプルから
アウトプットします
見慣れないものがあるかもしれませんが全部理解しなくて良いです
構造だけで
どのような最適化がみていきます
オリジナルからいくつか変わりました
こうでも良いですよね
これがSILの中で起きていることです
最適化フラグによる差分です
これが最適化のマジックです
様々な最適化が走っています
まとめです
みなさんの中にはSILが何か理解できないと思っている人もいるかもしれませんが、理解できるものです。
そして私の考えでは、コンパイラの動きを理解するのは重要です
更に深いコンパイラの知識は有益です
参照情報
今日はありがとうございました。メルカリブースに居るのでどうぞお声掛け下さい
SILを知るといいよという話
— 荒木敦 (@applideveloper) 2018年3月1日
#tryswiftconf
SILを知るといいよという話
— 荒木敦 (@applideveloper) 2018年3月1日
#tryswiftconf
SILを知るといいよという話
— 荒木敦 (@applideveloper) 2018年3月1日
#tryswiftconf