CFG (とりわけ) に 2 つの基本ブロック A と B があり、A から B へのエッジがあるとします。次の手順を実行する必要があります。
- そのエッジを横切るライブ値のセット S を取得します (これは過大評価である可能性があります。つまり、もうライブではない値が含まれている可能性があります)。
- それらのそれぞれを別の値にマップします (S->S')
- 置換 - B とその後継 - S の値のすべての使用をマップされた値 (S') に置き換える
LLVM は 1 番目と 3 番目のポイントを実行する簡単な方法を提供しますか? そうでない場合、それを行う方法について何か提案はありますか?
注: LLVM メーリング リストにクロスポストされました