英語版
このページの英語版を見る

dmd.e2ir

バックエンド用に式を中間表現(IR)に変換する。
Authors:

ソース e2ir.d

bool ISX64REF(Declaration var);
変数varが実際に参照として渡される値である場合
Parameters:
Declaration var パラメータ変数
Returns:
暗黙的に参照渡しされる場合は真
elem* elAssign(elem* e1, elem* e2, Type t, type* tx);
e2からe1へのコピーを生成する。
Parameters:
elem* e1 l値
elem* e2 r値
Type t 値型」。
type* tx もし!!nullなら、tはC型に変換される。
Returns:
生成されたelem
bool type_zeroCopy(type* t);
このバックエンド型に対してゼロビットをコピーする必要があるかどうかを判断する
Parameters:
type* t バックエンド型
Returns:
0ビットの場合は真
Symbol* toStringSymbol(const(char)* str, size_t len, size_t sz);
読み取り専用の文字列をオブジェクトファイルに書き込み、そのローカルシンボルを作成する。 strの内容のコピーを作成し、参照は保持しない。
Parameters:
const(char)* str 文字列
size_t len 文字列のコードユニット数
size_t sz コードユニットあたりのバイト数
Returns:
記号
Symbol* toStringSymbol(StringExp se);
StringExpをSymbolに変える。
void toTraceGC(ref IRState irs, elem* e, const ref Loc loc);
GCアロケータへの呼び出しをトレースGCアロケータへの呼び出しに置き換える。
Parameters:
IRState irs から関数を取得する。
elem* e elemから関数を取得する。
Loc loc からファイル/行を取得する
elem* toElemDtor(Expression e, ref IRState irs);
式をelemに変換し、elemに作られた一時的なファイルのデストラクタを追加する。 デストラクタを追加する。
Parameters:
Expression e 変換する式
IRState irs コンテキスト
Returns:
生成されたエレムツリー
elem* addressElem(elem* e, Type t, bool alwaysCopy = false);
elemのアドレスを取る。 eがr値であることを考慮し、r値をtempに代入する。 をtempに代入する。
Parameters:
elem* e elemのアドレスを取る
Type t elemの型
bool alwaysCopy trueの場合、常にeをtmpにコピーする。
Returns:
にコピーする。
void clearStringTab();
シンボルはローカルであるため、オブジェクト・ファイルが発行される間にstringTab[]をリセットする。
bool isDllImported(Dsymbol var);
データシンボルがdllimportされるべきかどうかを調べる
Parameters:
Dsymbol var シンボルの宣言
Returns:
シンボルがDLLからインポートされるべき場合、trueを返す。
Symbol* toExtSymbol(Dsymbol s);
フロントエンドのシンボルに対してバックエンドのシンボルを生成する
Parameters:
Dsymbol s フロントエンドシンボル
Returns:
バックエンドシンボル、または DLLからインポートされる場合は、インポートテーブルの関連するシンボル。
elem* toElem(Expression e, ref IRState irs);
式をバックエンドの要素に変換する。
Parameters:
Expression e 式ツリー
IRState irs コンテキスト
Returns:
バックエンド・エレム・ツリー