if〜then〜else続き

ほっとくのも気色悪いので
明示的スタック操作で実装した。


一応動いた。


よく考えるとLLVMのBasicBlockは引数をとれるわけではないから
CPSとかそういう問題ではないよな。
関数の引数以外に同じ名前で違う値を持つ方法がない。


とするとthen句とかのBasicBlockを
自由変数を引数とする外部関数に押し出して
勝手にインライン展開させるとかのがいいのかな?
それとも、allocaしたメモリもオプティマイザに見えてるなら
このままにしとけばレジスタに割り付けてくれるかな……
わざわざSSAにしてるんだからそりゃないか……
うーんドキュメント熟読していろいろ試さないとわからんか。


なんで関数型中間表現にしなかったんだろ。
A(K) Normal Formのが強力に見えるんだが、
私が素人だからかしら。