blob: 43bb4411aa5c7f255819ad5df545a40eac14ca1e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# エスケープ解析と未知の呼び出し元
[English](README.md) | 日本語
[前章: オブジェクトの構築と非公開メモリ](../chapter-construction/README.ja.md)
この章では、オブジェクトや関数のアドレスが、解析できない外部コードに届くかを追跡します。
関数のアドレスを既知の関数に渡すだけでは、未知の呼び出し元を残す必要はありません。
戻り値、メモリ内の参照、ネイティブ呼び出しを通じて公開される場合は、保守的な呼び出し元を残します。
メモリの型に関数とフィールド別名の集合を加え、Stop から Start への情報の循環を
SCCP のワークリストで解きます。再帰するコールバックの例では、呼び出しを残したまま
引数の定数を推論できます。構築中のフィールドは、前章と同じローカルな SSA 値です。
詳しい説明と実行例は [英語版](README.md) を参照してください。
このディレクトリで `make lib tests CTAGS=` を実行できます。
|