- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#n4a5e3fb]
#backlinks
*説明 [#idd2282f]
FIXME: なにをするもの?
GIMPLE は GCC 内部では tree というデータ型で表現されているようだ。
-[[gcc-8.3/gcc/tree]]
--tree は tree_node のポインタ
--[[gcc-8.3/gcc/tree_node(gen)]]
**おおざっぱな見方 [#uc74c188]
tree val があったとする。
種類を見る
-val->base.code をみると、SSA_NAME のような tree_code 型の定数が入っている。
コード上で扱う際は TREE_CODE() マクロで取る。
--[[gcc-8.3/gcc/tree_code]]
--[[gcc-8.3/gcc/TREE_CODE()]]
-tree_node は色んな型の union だが、どの型も必ず先頭に tree_base 型相当のメンバを持っているので、
base.code にアクセスしても大丈夫なはず。相変わらず GCC はむちゃくちゃな作りだ。
--[[gcc-8.3/gcc/tree_base]]
適した型でダンプ
-code が SSA_NAME だとしたら、tree_ssa_name 型の ssa_name を見れば良い。code と名前がほぼ一致しているから、わかるはず。