pub fn plan_shuttle(
macros: &[ShuttleMacro],
area: UserArea,
) -> Result<Vec<Placement>, ShuttleUnplaceable>Expand description
Shelf-pack the macros into the user area, tallest first.
Tallest-first shelf packing is the right shape here and not merely convenient: the macros vary by two orders of magnitude in area (0.019 to 1.140 mm^2), and packing the tall ones first keeps each shelf’s wasted height bounded by the shortest macro on it. At 46% occupancy this has enormous slack; the planner still REFUSES rather than overlapping if it runs out.