JITコンパイラ追跡:インラインキャッシュ最適化の誤った約束

2025-03-13
JITコンパイラ追跡:インラインキャッシュ最適化の誤った約束

本論文は、動的バイナリ変更(DBM)を追加することで、Ahead-of-Time(AoT)コンパイラの性能を向上させる可能性について調査しています。研究者らは、Hopc AoT JavaScriptコンパイラにDBMベースのインラインキャッシュ(IC)最適化を実装しましたが、実験の結果、性能は向上しませんでした。この研究では、メモリアクセスの削減が、現代のアーキテクチャにおいて必ずしも実行速度を向上させるとは限らないことが分かりました。これは従来の最適化戦略に疑問を投げかけるものであり、洗練されたコンパイラ最適化は、プロセッサがコードを単独で高速化できない場合にのみ価値があるという結論に至りました。この発見は、AoTコンパイラとJITコンパイラの両方に適用されます。

続きを読む

型クラスにおけるコヒーレンス:Swift、Rust、Scala、Haskellの比較

2025-03-12
型クラスにおけるコヒーレンス:Swift、Rust、Scala、Haskellの比較

型クラスは、Haskell、Swift、Rust、Scalaなどの言語で使用される一般的なプログラミング手法です。しかし、便利な暗黙的プログラミングは、型推論の曖昧さを招き、コヒーレンス(プログラムが正確に1つの意味を持つ性質)を損なう可能性があります。研究コミュニティでは意見が分かれています。文脈に依存した解決策を支持する者と、曖昧さを避けるためにグローバルに一意のインスタンスを主張する者がいます。本論文では、これらの4つの言語が型クラスのコヒーレンスに対処する方法を比較し、構文上の違いにもかかわらず、一意のインスタンスの制限を回避するための戦略が驚くほど似ていることを明らかにしています。

続きを読む