IF Statement Optimization
Special cases of IF statements are common; these can be compiled as shown below, where jmp c represents a jump on condition and jmp -c represents a jump on the opposite of a condition.
(if c (goto l)) jmp c l (if c (progn) (goto l)) jmp -c l (if c p1 (goto l)) jmp -c l p1 (if c (goto l) p2) jmp c l p2 (if c p1) jmp -c L1 p1 L1: (if c (progn) p2) jmp c L1 p2 L1: