433 for (
int i = 0; i <
GetSize(unmapped_lvalue); i++)
451 log_error(
"Attribute `%s' with non-constant value at %s:%d!\n",
453 sw->attributes[attr.first] = attr.second->asAttrConst();
475 for (
int i = 0; i <
GetSize(this_case_eq_lvalue); i++)
482 for (
auto node : child->children) {
501 last_generated_case->
compare.clear();
503 if (default_case ==
NULL) {
507 sw->
cases.push_back(default_case);
510 for (
int i = 0; i <
GetSize(this_case_eq_lvalue); i++)
515 addChunkActions(current_case->actions, this_case_eq_lvalue, this_case_eq_ltemp);
stackmap< RTLIL::SigBit, RTLIL::SigBit > subst_lvalue_map
void addChunkActions(std::vector< RTLIL::SigSig > &actions, RTLIL::SigSpec lvalue, RTLIL::SigSpec rvalue, bool inSyncRule=false)
std::set< RTLIL::SigBit > to_sigbit_set() const
RTLIL_ATTRIBUTE_MEMBERS std::vector< RTLIL::CaseRule * > cases
std::map< RTLIL::IdString, AstNode * > attributes
void log_error(const char *format,...)
std::vector< RTLIL::SigSpec > compare
void remove_unwanted_lvalue_bits(RTLIL::SigSpec &lhs, RTLIL::SigSpec &rhs)
bool get_bool_attribute(RTLIL::IdString id)
void collect_lvalues(RTLIL::SigSpec ®, AstNode *ast, bool type_eq, bool type_le, bool run_sort_and_unify=true)
RTLIL::CaseRule * current_case
void set(const Key &k, const T &v)
int GetSize(RTLIL::Wire *wire)
#define log_assert(_assert_expr_)
void processAst(AstNode *ast)
RTLIL::SigSpec new_temp_signal(RTLIL::SigSpec sig)
void replace(const RTLIL::SigSpec &pattern, const RTLIL::SigSpec &with)
stackmap< RTLIL::SigBit, RTLIL::SigBit > subst_rvalue_map
std::vector< AstNode * > children
void removeSignalFromCaseTree(const std::set< RTLIL::SigBit > &pattern, RTLIL::CaseRule *cs)
std::vector< RTLIL::SigSig > actions
std::vector< RTLIL::SwitchRule * > switches
std::pair< SigSpec, SigSpec > SigSig
const std::map< Key, T, Compare > & stdmap()