1. A method of designing at least a part of an integrated circuit, IC, design, the method comprising: identifying a first and at least one further module within the IC design that are mutually exclusive; selecting at least one register element within the first identified module and at least one register element within the at least one further identified module to be shared; and merging the first and at least one further mutually exclusive modules such that at least one common register element is shared between the first and at least one further mutually exclusive modules for the register elements selected to be shared.