3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-05-30 05:46:32 +00:00

simplify: fast lookup for expand_genblock

$pmux have bad runtime behavior with large cases and output
bit widths.

Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
This commit is contained in:
Ethan Mahintorabi 2026-04-17 04:01:17 +00:00 committed by Emil J. Tywoniak
parent a966d06524
commit 4a4e8612b8
2 changed files with 60 additions and 35 deletions

View file

@ -262,7 +262,10 @@ namespace AST
bool simplify(bool const_fold, int stage, int width_hint, bool sign_hint);
void replace_result_wire_name_in_function(const std::string &from, const std::string &to);
std::unique_ptr<AstNode> readmem(bool is_readmemh, std::string mem_filename, AstNode *memory, int start_addr, int finish_addr, bool unconditional_init);
dict<std::string, AstNode*> generate_module_fast_lookup_for_genblock_expansion();
void add_to_module_fast_lookup(dict<std::string, AstNode*>& module_fast_lookup, AstNode* node);
void expand_genblock(const std::string &prefix);
void expand_genblock(const std::string &prefix, dict<std::string, AstNode*>& module_fast_lookup);
void label_genblks(std::set<std::string>& existing, int &counter);
void mem2reg_as_needed_pass1(dict<AstNode*, pool<std::string>> &mem2reg_places,
dict<AstNode*, uint32_t> &mem2reg_flags, dict<AstNode*, uint32_t> &proc_flags, uint32_t &status_flags);