河野真治 @ 琉球大学情報工学です。

今日は、RTLの生成部分をgdbでtraceしながら。Emacs が gdb mode
に入らない。gud モードとかになるが、ソースを表示してくれない。

screen -L でlogを取りながら読むんだが uxterm のカーソルでも
戻っても上が見れない。script の方が良かったか。そもそも、p *
tree とかやると、100行以上でるので役にたたないし。bit filed 
で色んなものが定義されているのが裏目にでてるな。

bitfield に関しては、やっぱり苦労するらしく、そここに「ここ
はbitfieldがあるからうんぬん」のコメントがたくさんある。なく
しちゃえば良かったのにね。

        execute_pass_list (all_passes);

で、all_passes に入っているroutineが順々に、構文木に適用され
ていく。構文木はいじらずに、それにくっついているRTLを変更し
ながら最適化していく感じです。SSA (単一代入表現)は、構文木の
一部として実現されているわけね。

expr.c の expand_expr_real_1() で、ほとんど生成されてしまう。
*.md から、insn_*. c が4つ生成されるのか。

最適化は読みませんでしたが、まぁ、parse から fprintfで命令が
印刷されるところまで読みました。あぁ、tokenizer はすっとばし
たな。

読んだファイルと、テストプログラム

http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/compiler/gcc/gcc.log

gdb のlog

http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/compiler/gcc/gdb.log

emacs 操作のlogがあれば、完璧な再現になりますが、そんなもの
はありません... text  base で emacs を操作してlog取ればよか
ったな。今度は、そうしよう。

あと、「GCC解読室Wiki」なるものがあるのね。

http://wikiwiki.jp/aloha/?FrontPage

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科