ローカル最適化コンパイラの手法について調べてきましたが、それらがどのように実装されているかわかりません。アイデアは、オプティマイザがコードの「ウィンドウ」を毎回見て、どういうわけかパターンを検出し、それらをより最適化されたバージョンに置き換えるというものです。
私の質問は、これらのパターンをどのように発見するのですか? (あなたのプラットフォームが、Schocken's Hack のような、組み立てられたコンピューターのアセンブリ コードを出力する VM であるとしましょう)。
人々は実際に手動で (制御フロー グラフや DAG などを使用して) コードを検査し、識別されたすべてのパターンを収集してオプティマイザにコーディングしますか? または、自動的な方法があります。
たとえば、最適化するコードをアナライザーにフィードすると、前述のパターンが吐き出されます。もしそうなら、どうやって書き始めることができますか?