Patent attributes
Multiple optimization phases are combined to improve the performance and decrease the compilation time of user designs. An initial user design is compiled and analyzed to provide timing information. A two-pass optimization phase uses the timing information to optimize the user design. As the compilation process is repeated for the optimized user design, an incremental processing phase applies configuration information previously generated for the original user design to the corresponding portions of the optimized user design. Similarly, a selected one of a set of optimization algorithms can be applied to a modified user design, with the selection determined from an evaluation of the set of optimization algorithms on the unmodified user design. Additionally, external applications can perform one or more optimization phases on an original or modified user design. Using an illegality resolver and/or an incremental processing phase, the external applications' output can be efficiently integrated with other compilation phases.