mirror of https://github.com/YosysHQ/yosys.git
Consolidate "Blocking assignment to memory.." msgs for the same line
This commit is contained in:
parent
153d3dd4e0
commit
8e8e791fb5
|
@ -51,6 +51,7 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
|
||||||
{
|
{
|
||||||
AstNode *newNode = NULL;
|
AstNode *newNode = NULL;
|
||||||
bool did_something = false;
|
bool did_something = false;
|
||||||
|
static pair<string, int> last_blocking_assignment_warn;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
log("-------------\n");
|
log("-------------\n");
|
||||||
|
@ -62,6 +63,7 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
|
||||||
if (stage == 0)
|
if (stage == 0)
|
||||||
{
|
{
|
||||||
log_assert(type == AST_MODULE);
|
log_assert(type == AST_MODULE);
|
||||||
|
last_blocking_assignment_warn = pair<string, int>();
|
||||||
|
|
||||||
while (simplify(const_fold, at_zero, in_lvalue, 1, width_hint, sign_hint, in_param)) { }
|
while (simplify(const_fold, at_zero, in_lvalue, 1, width_hint, sign_hint, in_param)) { }
|
||||||
|
|
||||||
|
@ -1259,9 +1261,13 @@ skip_dynamic_range_lvalue_expansion:;
|
||||||
sstr << "$memwr$" << children[0]->str << "$" << filename << ":" << linenum << "$" << (autoidx++);
|
sstr << "$memwr$" << children[0]->str << "$" << filename << ":" << linenum << "$" << (autoidx++);
|
||||||
std::string id_addr = sstr.str() + "_ADDR", id_data = sstr.str() + "_DATA", id_en = sstr.str() + "_EN";
|
std::string id_addr = sstr.str() + "_ADDR", id_data = sstr.str() + "_DATA", id_en = sstr.str() + "_EN";
|
||||||
|
|
||||||
if (type == AST_ASSIGN_EQ)
|
if (type == AST_ASSIGN_EQ) {
|
||||||
|
pair<string, int> this_blocking_assignment_warn(filename, linenum);
|
||||||
|
if (this_blocking_assignment_warn != last_blocking_assignment_warn)
|
||||||
log_warning("Blocking assignment to memory in line %s:%d is handled like a non-blocking assignment.\n",
|
log_warning("Blocking assignment to memory in line %s:%d is handled like a non-blocking assignment.\n",
|
||||||
filename.c_str(), linenum);
|
filename.c_str(), linenum);
|
||||||
|
last_blocking_assignment_warn = this_blocking_assignment_warn;
|
||||||
|
}
|
||||||
|
|
||||||
int mem_width, mem_size, addr_bits;
|
int mem_width, mem_size, addr_bits;
|
||||||
children[0]->id2ast->meminfo(mem_width, mem_size, addr_bits);
|
children[0]->id2ast->meminfo(mem_width, mem_size, addr_bits);
|
||||||
|
|
Loading…
Reference in New Issue