1. A method for designing a system on a target device, comprising: generating a first netlist for a first version of the system in a first compilation; performing optimizations on the first version of the system during synthesis resulting in a second netlist; generating a third netlist for a second version of the system in a second compilation; and differentiating the first version of the system in the first netlist and the second version of the system in the third netlist to identify identical regions, wherein at least one of the generating, performing, and differentiating is performed by a processor.