gcc-8.3/gcc/tips__rtl
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#x7ba8097]
#backlinks
*説明 [#hd7dc067]
FIXME: なにをするもの?
-とぴっく
--解説
-RTL をダンプする関数
--[[gcc-8.3/gcc/print_rtl()]]
--[[gcc-8.3/gcc/rtx_writer/print_rtx()]]
-RTL のデータ構造
--[[gcc-8.3/gcc/rtx_def]]
-RTL の定義
--RTL に関連する変数や定義を行う際に、rtl.def と DEF_RTL_...
--[[gcc-8.3/gcc/DEF_RTL_EXPR()]]
-RTL の種類
--code メンバが保持している整数値でわかる。直接参照せず G...
--[[gcc-8.3/gcc/GET_CODE()]]
-RTL のオペランド
--オペランドの中身は rtx_def.u.fld[] で参照できる。0番目...
しかし fld[] は union 型なので、整数として解釈するのか、R...
---[[gcc-8.3/gcc/rtunion]]
--いくつオペランドを持っているかは、RTL の定義の FORMAT ...
例えば insn なら format は "uuBeiie" なので、7個持ってい...
--オペランドの型を知る方法は GET_RTX_FORMAT() にて解説し...
---[[gcc-8.3/gcc/GET_RTX_FORMAT()]]
---[[gcc-8.3/gcc/rtx_format(global)]]
** insn 関連 [#dcb1eff4]
-insn の UID と前後の命令
--insn は UID という通し番号を持っている。参照は INSN_UID...
デバッガで見るなら rtx->u2.insn_uid で参照すると早い。
--[[gcc-8.3/gcc/INSN_UID()]]
--insn の format は "uuBeiie" で、最初の uu は自身の前の...
オペランド型 'u' は RTX として解釈すれば良いようなので、
デバッガなどで rtx->u.fld[0].rt_rtx.u2.insn_uid で参照す...
-オペランドから命令を選択する仕組み
--パス vreg で行う、insn の 5番目のオペランド、つまり "uu...
---値はアーキテクチャによって違う、riscv32 なら 141 は mo...
--命令を選択する関数は extract_insn() で、心臓部は recog(...
---[[gcc-8.3/gcc/extract_insn()]]
---[[gcc-8.3/gcc/recog()]]
-命令選択 recog_xxx() を生成する関数
--md ファイルの S 式から生成しているようだが、仕組みがわ...
--[[gcc-8.3/gcc/create_subroutine()]]
**参考 [#abc53b88]
**関連モジュール [#dc5284ee]
*コメント [#ye27b383]
終了行:
*参照元 [#x7ba8097]
#backlinks
*説明 [#hd7dc067]
FIXME: なにをするもの?
-とぴっく
--解説
-RTL をダンプする関数
--[[gcc-8.3/gcc/print_rtl()]]
--[[gcc-8.3/gcc/rtx_writer/print_rtx()]]
-RTL のデータ構造
--[[gcc-8.3/gcc/rtx_def]]
-RTL の定義
--RTL に関連する変数や定義を行う際に、rtl.def と DEF_RTL_...
--[[gcc-8.3/gcc/DEF_RTL_EXPR()]]
-RTL の種類
--code メンバが保持している整数値でわかる。直接参照せず G...
--[[gcc-8.3/gcc/GET_CODE()]]
-RTL のオペランド
--オペランドの中身は rtx_def.u.fld[] で参照できる。0番目...
しかし fld[] は union 型なので、整数として解釈するのか、R...
---[[gcc-8.3/gcc/rtunion]]
--いくつオペランドを持っているかは、RTL の定義の FORMAT ...
例えば insn なら format は "uuBeiie" なので、7個持ってい...
--オペランドの型を知る方法は GET_RTX_FORMAT() にて解説し...
---[[gcc-8.3/gcc/GET_RTX_FORMAT()]]
---[[gcc-8.3/gcc/rtx_format(global)]]
** insn 関連 [#dcb1eff4]
-insn の UID と前後の命令
--insn は UID という通し番号を持っている。参照は INSN_UID...
デバッガで見るなら rtx->u2.insn_uid で参照すると早い。
--[[gcc-8.3/gcc/INSN_UID()]]
--insn の format は "uuBeiie" で、最初の uu は自身の前の...
オペランド型 'u' は RTX として解釈すれば良いようなので、
デバッガなどで rtx->u.fld[0].rt_rtx.u2.insn_uid で参照す...
-オペランドから命令を選択する仕組み
--パス vreg で行う、insn の 5番目のオペランド、つまり "uu...
---値はアーキテクチャによって違う、riscv32 なら 141 は mo...
--命令を選択する関数は extract_insn() で、心臓部は recog(...
---[[gcc-8.3/gcc/extract_insn()]]
---[[gcc-8.3/gcc/recog()]]
-命令選択 recog_xxx() を生成する関数
--md ファイルの S 式から生成しているようだが、仕組みがわ...
--[[gcc-8.3/gcc/create_subroutine()]]
**参考 [#abc53b88]
**関連モジュール [#dc5284ee]
*コメント [#ye27b383]
ページ名: