mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-19 12:23:39 +00:00
ast/simplify: Use clone_at_zero() for "at_zero" evaluations
The correct way of using the 'at_zero' regime of simplify is to perform the simplification on a cloned AST subtree, otherwise the "at_zero" evaluation seeps into the main tree. Move the effect of the 'at_zero' flag to the cloning itself, so that the simplify flag can be retired. We assume we can rely on id2ast in the new clone method.
This commit is contained in:
parent
77d4b5230e
commit
4fceeb3b32
3 changed files with 56 additions and 22 deletions
|
@ -336,6 +336,10 @@ namespace AST
|
|||
// Helper for looking up identifiers which are prefixed with the current module name
|
||||
std::string try_pop_module_prefix() const;
|
||||
|
||||
// helper to clone the node with some of its subexpressions replaced with zero (this is used
|
||||
// to evaluate widths of dynamic ranges)
|
||||
AstNode *clone_at_zero();
|
||||
|
||||
// helper to print errors from simplify/genrtlil code
|
||||
[[noreturn]] void input_error(const char *format, ...) const YS_ATTRIBUTE(format(printf, 2, 3));
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue