1. Non-transitory computer-readable media containing instructions, which when read and executed by a computer, cause the computer to execute a method for selecting a placement for device modules that are to form an integrated circuit (IC) described by an IC design, wherein the selected placement satisfies a set of placement constraints, wherein the method comprises the steps of: a. processing the IC design to define a multiple-level hierarchy of groups, wherein each group consists of elements that are subject to one of the placement constraints, and wherein at least one element of at least one group residing at an upper level of the hierarchy comprises at least one of the groups residing at a lower level of the hierarchy and at least one element of at least one group residing at a lower level of the hierarchy comprises at least one of the device modules; b. generating a hierarchical representation of a trial placement for the IC comprising a separate group representation for each group of the hierarchy and a separate device representation for each of the device modules not included in any of the groups, wherein each group representation defines relative positions within the IC of the elements of the group that are consistent with the placement constraint on the elements of the group and each device representation defines a relative position of the device module it represents, c. iteratively perturbing the hierarchical representation to generate a sequence of hierarchical representations of trial placements for the IC design; d. separately evaluating a cost function for each trial placement that is a measure of placement quality, and e. based on cost function evaluations carried out at step d, selecting a best one of the trial placements generated at step c as the selected placement.