正規表現コンパイラをgithubに置きました

正規表現コンパイラgithubに置きました。
http://github.com/miura1729/regexpllvm/tree/master

生成したllvmのbitcodeを最適化できるようにしました。
やっていることは、bitcodeをファイルに書き出してoptを呼んでいるだけです。

  def optimize
    bitout =  Tempfile.new('bit')
    @module.write_bitcode("#{bitout.path}")
    File.popen("/usr/local/bin/opt -O3 -f #{bitout.path}") {|fp|
      @module = LLVM::Module.read_bitcode(fp.read)
    }
    @func = @module.get_or_insert_function("regmatch", 
                                           Type.function(VALUE, [VALUE]))
  end

ベンチマークをやってみましたが、最適化してもほとんど効果が無かったです。やはり、ジャンプの塊ではパイプラインストールしまくってスピードが出ないのかもしれないです。

      user     system      total        real
Ruby's            0.078000   0.000000   0.078000 (  0.084000)
llvm without opt  0.344000   0.000000   0.344000 (  0.341000)
llvm with opt     0.328000   0.000000   0.328000 (  0.334000)