add basic block-combining optimization