OpenHSP with LLVM

	val = 0 
*main :
	if val >= 100000000 : goto *a
	val += 1
	if val \  100000 == 0 : mes val
	goto *main
*a :
	mes val

ぐらいなら動くようになった。型は整数、制御構文はifとgotoのみって段階で比べてもしょうもないけどオフィシャルのHSPの50倍速ぐらいで。

LLVMのFunctionからC++側の関数を呼び出す方法が分からずmesの実装に一番時間がかかった。
ExecutionEngine::InstallLazyFunctionCreatorで関数名から関数ポインタを引き当てるコールバックを登録できるようだ。ある言語からLLVMのインストラクション経由でネイティブコード吐く例は結構あるんだけど、JITを直に組み込む例があんまり見つからない。