基本ブロックは、1 つの入口ポイントと 1 つの出口ポイントのみを持つアセンブリ スニペットです (ウィキペディアのリンクにも、より厳密な定義があります)。多くのコンパイラ最適化パスは、コンパイラがユーザーのコードをオプティマイザに渡す前に基本ブロックに分解することに依存しています。
非局所効果が基本ブロック自体のパフォーマンスに影響を与える可能性があることを知りたいです。非局所効果とは、実行時間に影響を与える前に基本ブロックの外側のコードがどのように実行されるか、またはコードがメモリ内のどこに配置されているかがそれにどのように影響するかを意味します。これは、ループや分岐などで任意のプログラムのパフォーマンスを心配するよりも、少し制限的です。
プログラムの他の部分 (メモリと命令キャッシュの両方) によるヘッド キャッシュの使用は、考えられる最大の非ローカル効果のようです。また、以前に実行された命令または現在実行中の以前の命令によるパイプライン セットアップの状態。特に x86/x86-64 に興味がありますが、他のアーキテクチャへの影響も知っておく価値があるようです。他の非局所効果はありますか?