インライン化ヒューリスティクスの調査
コンパイラ、特にメソッドJITコンパイラは関数ごとに処理を行うが、メソッド呼び出しのオーバーヘッドが大きいRubyのような言語では、インライン化が最適化の鍵となる。本記事では、Cinder、YJIT、SpiderMonkey、JavaScriptCore、HotSpotなどのJITコンパイラにおけるインライン化のヒューリスティクスを調査し、プロファイル情報の活用方法や様々な判断基準(コードサイズ、インライン深さ、再帰、ポリモーフィズムなど)を比較する。また、ニューラルネットワークを用いた手法やAOT情報の活用など、最新の研究動向にも触れる。