From ecc19c2c083f7e3ed7da95557731ded803d2cb1d Mon Sep 17 00:00:00 2001 From: gatecat Date: Wed, 2 Jun 2021 10:01:36 +0100 Subject: Using hashlib in arches Signed-off-by: gatecat --- fpga_interchange/pseudo_pip_model.h | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) (limited to 'fpga_interchange/pseudo_pip_model.h') diff --git a/fpga_interchange/pseudo_pip_model.h b/fpga_interchange/pseudo_pip_model.h index 1e79071d..b0e28059 100644 --- a/fpga_interchange/pseudo_pip_model.h +++ b/fpga_interchange/pseudo_pip_model.h @@ -24,7 +24,6 @@ #include #include "dynamic_bitarray.h" -#include "hash_table.h" #include "nextpnr_namespaces.h" #include "nextpnr_types.h" #include "site_router.h" @@ -58,28 +57,10 @@ struct LogicBelKey bool operator==(const LogicBelKey &other) const { return make_tuple() == other.make_tuple(); } bool operator<(const LogicBelKey &other) const { return make_tuple() < other.make_tuple(); } -}; - -NEXTPNR_NAMESPACE_END -namespace std { -template <> struct hash -{ - std::size_t operator()(const NEXTPNR_NAMESPACE_PREFIX LogicBelKey &key) const noexcept - { - std::size_t seed = 0; - boost::hash_combine(seed, hash()(key.tile_type)); - boost::hash_combine(seed, hash()(key.pip_index)); - boost::hash_combine(seed, hash()(key.site)); - - return seed; - } + unsigned int hash() const { return mkhash(mkhash(tile_type, pip_index), site); } }; -}; // namespace std - -NEXTPNR_NAMESPACE_BEGIN - // Storage for tile type generic pseudo pip data and lookup. struct PseudoPipData { @@ -97,9 +78,9 @@ struct PseudoPipData // This does **not** include site ports or site pips. const std::vector &get_logic_bels_for_pip(const Context *ctx, int32_t site, PipId pip) const; - HashTables::HashMap max_pseudo_pip_for_tile_type; - HashTables::HashMap, std::vector, PairHash> possibles_sites_for_pip; - HashTables::HashMap> logic_bels_for_pip; + dict max_pseudo_pip_for_tile_type; + dict, std::vector> possibles_sites_for_pip; + dict> logic_bels_for_pip; }; // Tile instance fast pseudo pip lookup. @@ -107,9 +88,9 @@ struct PseudoPipModel { int32_t tile; DynamicBitarray<> allowed_pseudo_pips; - HashTables::HashMap pseudo_pip_sites; - HashTables::HashMap> site_to_pseudo_pips; - HashTables::HashSet active_pseudo_pips; + dict pseudo_pip_sites; + dict> site_to_pseudo_pips; + pool active_pseudo_pips; std::vector scratch; // Call when a tile is initialized. -- cgit v1.2.3