Add branch instruction, refactoring all optimizer passes to intraprocedural optimizer + an universial procedure analyzer