hsp3cnv

半年遅れぐらいだけど、http://dev.onionsoft.net/trac/browser/trunk/hsp3cnv をいじってみる。
extvarへのアクセスと配列の自動拡張対応追加で
http://taillove.jp/mia/のraytracing.hspとかは動くようになった。

ベンチマークとしてレイトレーシングで1回レンダリングするのにかかった時間を図ってみると。

  • hsp3.1(オフィシャルで配布されてるもの)

20sec

  • hsp3.2 svn head(/Ox&リンク時のコード生成を使用)

17.7sec

  • hsp3cnv + hsp3rtest(/Ox&リンク時のコード生成を使用)

15.1sec

  • hsp3cnv + hsp3rtest(/O2&リンク時のコード生成なし)

28sec

hsp3cnvが吐くC++のコードはほぼ関数呼び出しだけなのでC++コンパイラ経由せずにネイティブコード生成してJITコンパイラとして使えるようにするのにさほど無茶な手間はかからない気がするけど、上の結果見る限りパフォーマンス向上が得られるかっていうと微妙そう。