From c7c13cd95f7a25b2c8932ca00ad667ffca381c70 Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 16 Feb 2021 11:52:16 +0000 Subject: Remove isValidBelForCell This Arch API dates from when we were first working out how to implement placement validity checking, and in practice is little used by the core parts of placer1/HeAP and the Arch implementation involves a lot of duplication with isBelLocationValid. In the short term; placement validity checking is better served by the combination of checkBelAvail and isValidBelForCellType before placement; followed by isBelLocationValid after placement (potentially after moving/swapping multiple cells). Longer term, removing this API makes things a bit cleaner for a new validity checking API. Signed-off-by: gatecat --- generic/arch.cc | 15 --------------- generic/arch.h | 1 - 2 files changed, 16 deletions(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 999e5033..a87c4392 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -650,21 +650,6 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port return tmg.clockingInfo.at(port).at(index); } -bool Arch::isValidBelForCell(CellInfo *cell, BelId bel) const -{ - std::vector cells; - cells.push_back(cell); - Loc loc = getBelLocation(bel); - for (auto tbel : getBelsByTile(loc.x, loc.y)) { - if (tbel == bel) - continue; - CellInfo *bound = getBoundBelCell(tbel); - if (bound != nullptr) - cells.push_back(bound); - } - return cellsCompatible(cells.data(), int(cells.size())); -} - bool Arch::isBelLocationValid(BelId bel) const { std::vector cells; diff --git a/generic/arch.h b/generic/arch.h index 007478eb..f3a6dccd 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -357,7 +357,6 @@ struct Arch : ArchAPI TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const override; bool isValidBelForCellType(IdString cell_type, BelId bel) const override { return cell_type == getBelType(bel); } - bool isValidBelForCell(CellInfo *cell, BelId bel) const override; bool isBelLocationValid(BelId bel) const override; static const std::string defaultPlacer; -- cgit v1.2.3