高速化チューニング その4 合成命令とか - Scheme VM を書く
合成命令をいくつか実装した。ほんの気持ち速くなった。
実装したのは以下の命令。
(define-insn BRANCH_NULLP 1) (define-insn BRANCH_EQ 1) (define-insn BRANCH_NUMBER_EQUAL 1) (define-insn BRANCH_NUMBER_GT 1) (define-insn BRANCH_NUMBER_GE 1) (define-insn BRANCH_NUMBER_LT 1) (define-insn BRANCH_NUMBER_LE 1) (define-insn BRANCH_PAIRP 1) (define-insn REFER_LOCAL_PUSH 1) (define-insn REFER_FREE_PUSH 1) (define-insn REFER_GLOBAL_PUSH 2) (define-insn REFER_LOCAL0 0) (define-insn REFER_LOCAL1 0) (define-insn REFER_LOCAL2 0) (define-insn REFER_LOCAL0_PUSH 0) (define-insn REFER_LOCAL1_PUSH 0) (define-insn REFER_LOCAL2_PUSH 0) (define-insn CAR_PUSH 0) (define-insn CDR_PUSH 0) (define-insn CAAR_PUSH 0) (define-insn CADR_PUSH 0) (define-insn CDAR_PUSH 0) (define-insn CDDR_PUSH 0)
ついでに Boehm GC を static リンクしソースもレポジトリに入れることにした。
環境によってバージョンが違ったりして気持ち悪かったので。
gc-7.1alpha3 と新しめにしたけど大丈夫かしら。