Sunday 4 November 2012

LLVM

今年も LLVM 読みます。11/9 の 14:40 からと、11/10 一日。UST するかどうかは気分次第です。

目標的には、LLVM の Tail call elimination を調べるのと、関数 attribute の扱いだな。

いや、あのポインタタグと格闘すると思うと気が重い…

* Type safe にして、最適化はコンパイラに任せろ

というのを LLVM 自体が守らないってどうなのよ。でも、このポインタタグを治すのは、もう無理なんだろうな。

いや、そもそも使いたいんだったら、

* C++ にポインタタグを built-in

にしたらどうだろう? 実際、

(1) null pointer (未初期化)
(1) 未代入な領域へのポインタ
(2) 普通の pointer
(3) 整数値 ( or ラベル)

とか、区別したいことはあるし。

授業中に、LLVM internal representation を吐く部分とか、intel64 なレジスタを使ったコード生成とか書いたが、実際に動かすところまではやらず… また、来年かな〜

たまに、授業中にコード見て「あれ? 既に書いてあるな」とか「これ、動かしてないな」とか思うことがある。ちょっと前なら憶えちゃいるが、1年前だとちとわからないな〜

No comments: