1. A method comprising: generating an initial Steiner tree connecting a source node to at least one sink node in an integrated circuit layout, wherein the initial Steiner tree is generated according to heuristics that do not take into account density of regions in the integrated circuit layout; and adjusting a topology of the initial Steiner tree so as to avoid dense regions in the integrated circuit layout, thus obtaining a porosity-aware Steiner tree.