1. A method in a data processing system for generating an optimum circuit design from an input circuit design, comprising: receiving the input circuit design; performing buffer insertion optimization on the input circuit design to generate a first set of solutions having a plurality of solutions; performing driver sizing optimization on the first set of solutions to generate a second set of solutions; and outputting, as the optimum circuit design, a solution from the second set of solutions.