mirror of https://github.com/YosysHQ/yosys.git
Using Yosys::dict and Yosys::pool in sigtools.h
This commit is contained in:
parent
ec4751e55c
commit
6ce6689b63
|
@ -29,9 +29,10 @@ struct SigPool
|
||||||
struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
|
struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
|
||||||
bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
|
bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
|
||||||
bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }
|
bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }
|
||||||
|
unsigned int hash() const { return first->name.hash() + second; }
|
||||||
};
|
};
|
||||||
|
|
||||||
std::set<bitDef_t> bits;
|
pool<bitDef_t> bits;
|
||||||
|
|
||||||
void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
|
@ -122,7 +123,7 @@ struct SigPool
|
||||||
|
|
||||||
RTLIL::SigSpec export_all()
|
RTLIL::SigSpec export_all()
|
||||||
{
|
{
|
||||||
std::set<RTLIL::SigBit> sig;
|
pool<RTLIL::SigBit> sig;
|
||||||
for (auto &bit : bits)
|
for (auto &bit : bits)
|
||||||
sig.insert(RTLIL::SigBit(bit.first, bit.second));
|
sig.insert(RTLIL::SigBit(bit.first, bit.second));
|
||||||
return sig;
|
return sig;
|
||||||
|
@ -140,9 +141,10 @@ struct SigSet
|
||||||
struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
|
struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
|
||||||
bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
|
bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
|
||||||
bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }
|
bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }
|
||||||
|
unsigned int hash() const { return first->name.hash() + second; }
|
||||||
};
|
};
|
||||||
|
|
||||||
std::map<bitDef_t, std::set<T, Compare>> bits;
|
dict<bitDef_t, std::set<T, Compare>> bits;
|
||||||
|
|
||||||
void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
|
@ -214,6 +216,7 @@ struct SigMap
|
||||||
struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
|
struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
|
||||||
bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
|
bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
|
||||||
bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }
|
bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }
|
||||||
|
unsigned int hash() const { return first->name.hash() + second; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct shared_bit_data_t {
|
struct shared_bit_data_t {
|
||||||
|
@ -221,7 +224,7 @@ struct SigMap
|
||||||
std::set<bitDef_t> bits;
|
std::set<bitDef_t> bits;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::map<bitDef_t, shared_bit_data_t*> bits;
|
dict<bitDef_t, shared_bit_data_t*> bits;
|
||||||
|
|
||||||
SigMap(RTLIL::Module *module = NULL)
|
SigMap(RTLIL::Module *module = NULL)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue