トレーシングフェーズ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/15 02:57 UTC 版)
「トレーシング実行時コンパイル」の記事における「トレーシングフェーズ」の解説
トレーシングフェーズ下ではループの実行は通常通りだが、加えてすべての実行された演算がトレースに記録される。記録される演算はたいていは中間言語として保存される。ループ内からの関数コールも追跡され、場合によってはトレース内にインライン展開される。トレーシングはループが終了するかスタート点にジャンプするまで継続される。 トレースが記録できるのは、ある1つの実行パス条件のみであり、その後の実行がこの記録された実行パスとは異なる条件で実行される場合も考えられる。条件が同じかどうかを判定するためにガード命令がトレースに挿入される場合がある。if 文は挿入される場所の一例である。ガードは仮定していた条件が成り立っているかどうかを判定する。条件が成り立っていなければトレースは中止させられる。 トレーシングは実行時において行われるため実行時情報を含むことができる(例、実行時型情報)。この情報は最適化においてコードの品質を上げるのに使うことができる。
※この「トレーシングフェーズ」の解説は、「トレーシング実行時コンパイル」の解説の一部です。
「トレーシングフェーズ」を含む「トレーシング実行時コンパイル」の記事については、「トレーシング実行時コンパイル」の概要を参照ください。
- トレーシングフェーズのページへのリンク