11 m_size = m_out_reg.size();
13 m_is_round_based =
true;
19 m_size = m_out_reg.size();
21 m_is_round_based =
true;
26 m_size = m_out_reg.size();
28 m_is_round_based = m_in_reg == m_out_reg;
33 m_size = m_out_reg.size();
35 m_is_round_based = m_in_reg == m_out_reg;
40 return (this->m_size == rhs.m_size) && (this->m_in_reg == rhs.m_in_reg) && (!m_is_round_based & (this->m_out_reg == rhs.m_out_reg));
45 return (this->m_size > rhs.m_size) || (this->m_size == rhs.m_size && this->m_in_reg > rhs.m_in_reg)
46 || (!m_is_round_based & (this->m_size == rhs.m_size && this->m_in_reg == rhs.m_in_reg && this->m_out_reg > rhs.m_out_reg));
61 return m_is_round_based;
A register candidate discovered by HAWKEYE.
Netlist * get_netlist() const
Get the netlist associated with the candidate.
bool operator<(const RegisterCandidate &rhs) const
Less-than comparison operator for two register candidates.
bool is_round_based() const
Check if the candidate is round-based, i.e., input and output register are the same.
bool operator==(const RegisterCandidate &rhs) const
Equality comparison operator for two register candidates.
RegisterCandidate()=default
Default constructor for RegisterCandidate.
u32 get_size() const
Get the size of the candidate, i.e., the width of its registers.
const std::set< Gate * > & get_input_reg() const
Get the candidate's input register.
const std::set< Gate * > & get_output_reg() const
Get the candidate's output register.
This file contains the class that holds all information on a register candidate.