Boolean

現実逃避の度合=開発の進み具合。

構文は順に対処していくだけですので、今のところは特に問題は無いのですが、吐いた機械語の無駄具合がなんとも。最適化は後回しと決めているにしても…。
このコンパイラでは、ソースコード構文木→三番地文(このレベルで雀の涙最適化)→機械語(nasmのソースコード)、という手順を踏んでいるわけです。で、三番地文だけ弄り回しても、無駄な変数は消せるのですが、使うレジスタは相変わらずeaxだけだったりするのです。最終的には三番地文から機械語への変換過程でレジスタ割付けなんかもしないといけないのですが、そうすると今必要な分だけ書いている三番地文を機械語に直訳するルーチンも無駄になる訳で…。
デバッグ情報の出力なども考えると恐らく既存のバックエンドを持ってきた方が賢いのでしょうけれど、gccをハックする気力は無いので、もっとお手軽なのが欲しいところです。擬似アセンブラと行番号情報を渡せば、勝手に最適化してデバッグ情報付き.objファイルにしてくれるようなやつ。サンデープログラマでもコンパイラが作れるバックエンド。

唐突に、そういや何か記憶が…と思い出しまして。

http://www.kmonos.net/alang/etc/cecil.php
http://www.cs.washington.edu/research/projects/cecil/www/vortex.html

Vortexってどうなんでしょう?

…ひょっとしてSPARC以外はgcc経由か?