2008年12月2日火曜日

RTL 式

RTL 式は、常にポインタ経由で扱われる C 構造体 struct rtx 型。

整数、ワイド整数(HOST_WIDE_INT)、C 文字列(char*)、配列を含む S 式。

RTL 式内の C 文字列 "..." は、基本的に C の文字列リテラルと同じだけど、複数行に渡って記述できるように拡張されている。

配列は [ ... ] という式表現。任意個のポインタを含む。
長さ 0 の配列は作れない。代わりにヌルポインタを使う。
ヌルポインタは (nil) と書く。

GET_CODE (x) で取得、PUT_CODE (x, newcode) で変更できる RTL コードにより、オペランドの数などが決まる。
rtl.def で定義されている列挙体。

gcc-4.3.2/gcc/rtl.def

RTL 式の中では "const_int" のような小文字だけの文字列。
C 式の中では CONST_INT のような大文字の定数が使われる。

0 件のコメント: