2010-03-26から1日間の記事一覧

ブログタイトル変えた

何をやってるかわかりやすくした。

レジスタ割り当ての最適化

rowl1で plus: (x,y) { return x+y; };をコンパイルすると、中間コードが _plus.ii2TiL: pushl %ebp movl %esp, %ebp movl 12(%ebp), %p9 movl 8(%ebp), %p8 movl %p8, %p10 addl %p9, %p10 movl %p10, %eax leave retになる。%p8,%p9,%p10がレジスタ未割り…

2番地コードに変更

x86のアセンブリは基本的に2番地コードなのに、何故か3番地コードにしてた。 今は最適化とかやらないので、実装の容易さを優先して2番地コードに変更した。

レジスタ割り当て実装

3番地コードに対してレジスタ割り当てを実装した。 干渉グラフに基づくグラフカラーリングによる実装にした。カラーリングの最適化は殆どやっていない。干渉レジスタの多いところから優先的に割り当てるという程度。これで実行可能なコードを生成できるとこ…