1. A method of managing virtual boundaries to enable lock-free concurrent region optimization, the method comprising: receiving a model of an integrated circuit (‘IC’); dividing the model into a plurality of regions, wherein none of the plurality of regions overlap with another region, including: selecting objects to place in a particular region; identifying boundary objects that isolate the particular region from all other objects in the integrated circuit; and freezing data on the boundary objects that are visible to all other regions including freezing values of input signals to the boundary objects and output signals from the boundary objects, wherein the values of the input signals to the boundary objects and the output signals from the boundary objects remain constant during the optimization; assigning each of the plurality of regions to a thread of execution, wherein each thread of execution utilizes a shared memory space; optimizing, by each thread in parallel and without locking any of the objects in any of the regions, the assigned region, including optimizing all portions of the assigned region other than the boundary objects; creating a new region that includes objects previously included in two or more of the plurality of regions, wherein at least one of the boundary objects in each of the two or more of the plurality of regions become non-boundary objects in the new region, including unfreezing data on the boundary objects that become non-boundary objects; and optimizing the new region.