diff options
Diffstat (limited to 'frontends')
| -rw-r--r-- | frontends/aiger/aigerparse.cc | 23 | ||||
| -rw-r--r-- | frontends/ast/ast.cc | 7 | ||||
| -rw-r--r-- | frontends/ast/simplify.cc | 5 | ||||
| -rw-r--r-- | frontends/blif/blifparse.cc | 2 | ||||
| -rw-r--r-- | frontends/blif/blifparse.h | 2 | ||||
| -rw-r--r-- | frontends/verific/verific.cc | 2 | 
6 files changed, 23 insertions, 18 deletions
| diff --git a/frontends/aiger/aigerparse.cc b/frontends/aiger/aigerparse.cc index bd0596cc0..06522939f 100644 --- a/frontends/aiger/aigerparse.cc +++ b/frontends/aiger/aigerparse.cc @@ -67,7 +67,7 @@ struct ConstEvalAig  				continue;  			for (auto &it2 : it.second->connections())  				if (yosys_celltypes.cell_output(it.second->type, it2.first)) { -					auto r = sig2driver.insert(std::make_pair(it2.second, it.second)); +					auto r YS_ATTRIBUTE(unused) = sig2driver.insert(std::make_pair(it2.second, it.second));  					log_assert(r.second);  				}  		} @@ -389,9 +389,9 @@ void AigerReader::parse_xaiger(const dict<int,IdString> &box_lookup)  			f.ignore(1);  			// XAIGER extensions  			if (c == 'm') { -				uint32_t dataSize = parse_xaiger_literal(f); +				uint32_t dataSize YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				uint32_t lutNum = parse_xaiger_literal(f); -				uint32_t lutSize = parse_xaiger_literal(f); +				uint32_t lutSize YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				log_debug("m: dataSize=%u lutNum=%u lutSize=%u\n", dataSize, lutNum, lutSize);  				ConstEvalAig ce(module);  				for (unsigned i = 0; i < lutNum; ++i) { @@ -416,7 +416,7 @@ void AigerReader::parse_xaiger(const dict<int,IdString> &box_lookup)  						int gray = j ^ (j >> 1);  						ce.set_incremental(input_sig, RTLIL::Const{gray, static_cast<int>(cutLeavesM)});  						RTLIL::SigBit o(output_sig); -						bool success = ce.eval(o); +						bool success YS_ATTRIBUTE(unused) = ce.eval(o);  						log_assert(success);  						log_assert(o.wire == nullptr);  						lut_mask[gray] = o.data; @@ -428,7 +428,7 @@ void AigerReader::parse_xaiger(const dict<int,IdString> &box_lookup)  				}  			}  			else if (c == 'r') { -				uint32_t dataSize = parse_xaiger_literal(f); +				uint32_t dataSize YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				flopNum = parse_xaiger_literal(f);  				log_assert(dataSize == (flopNum+1) * sizeof(uint32_t));  				f.ignore(flopNum * sizeof(uint32_t)); @@ -440,18 +440,18 @@ void AigerReader::parse_xaiger(const dict<int,IdString> &box_lookup)  			}  			else if (c == 'h') {  				f.ignore(sizeof(uint32_t)); -				uint32_t version = parse_xaiger_literal(f); +				uint32_t version YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				log_assert(version == 1); -				uint32_t ciNum = parse_xaiger_literal(f); +				uint32_t ciNum YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				log_debug("ciNum = %u\n", ciNum); -				uint32_t coNum = parse_xaiger_literal(f); +				uint32_t coNum YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				log_debug("coNum = %u\n", coNum);  				piNum = parse_xaiger_literal(f);  				log_debug("piNum = %u\n", piNum); -				uint32_t poNum = parse_xaiger_literal(f); +				uint32_t poNum YS_ATTRIBUTE(unused) = parse_xaiger_literal(f);  				log_debug("poNum = %u\n", poNum);  				uint32_t boxNum = parse_xaiger_literal(f); -				log_debug("boxNum = %u\n", poNum); +				log_debug("boxNum = %u\n", boxNum);  				for (unsigned i = 0; i < boxNum; i++) {  					f.ignore(2*sizeof(uint32_t));  					uint32_t boxUniqueId = parse_xaiger_literal(f); @@ -901,9 +901,6 @@ void AigerReader::post_process()  				RTLIL::Cell* cell = module->cell(stringf("$__box%d__", variable));  				if (cell) { // ABC could have optimised this box away  					module->rename(cell, escaped_s); -					RTLIL::Module* box_module = design->module(cell->type); -					log_assert(box_module); -  					for (const auto &i : cell->connections()) {  						RTLIL::IdString port_name = i.first;  						RTLIL::SigSpec rhs = i.second; diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc index 07ef0a86e..82283fb5b 100644 --- a/frontends/ast/ast.cc +++ b/frontends/ast/ast.cc @@ -1172,7 +1172,7 @@ void AST::process(RTLIL::Design *design, AstNode *ast, bool dump_ast1, bool dump  			if (design->has((*it)->str)) {  				RTLIL::Module *existing_mod = design->module((*it)->str); -				if (!nooverwrite && !overwrite && !existing_mod->get_bool_attribute("\\blackbox")) { +				if (!nooverwrite && !overwrite && !existing_mod->get_blackbox_attribute()) {  					log_file_error((*it)->filename, (*it)->linenum, "Re-definition of module `%s'!\n", (*it)->str.c_str());  				} else if (nooverwrite) {  					log("Ignoring re-definition of module `%s' at %s:%d.\n", @@ -1502,7 +1502,10 @@ std::string AstModule::derive_common(RTLIL::Design *design, dict<RTLIL::IdString  	rewrite_parameter:  			para_info += stringf("%s=%s", child->str.c_str(), log_signal(RTLIL::SigSpec(parameters[para_id])));  			delete child->children.at(0); -			if ((parameters[para_id].flags & RTLIL::CONST_FLAG_STRING) != 0) +			if ((parameters[para_id].flags & RTLIL::CONST_FLAG_REAL) != 0) { +				child->children[0] = new AstNode(AST_REALVALUE); +				child->children[0]->realvalue = std::stod(parameters[para_id].decode_string()); +			} else if ((parameters[para_id].flags & RTLIL::CONST_FLAG_STRING) != 0)  				child->children[0] = AstNode::mkconst_str(parameters[para_id].decode_string());  			else  				child->children[0] = AstNode::mkconst_bits(parameters[para_id].bits, (parameters[para_id].flags & RTLIL::CONST_FLAG_SIGNED) != 0); diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index 54b9efaad..86dd80c65 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -150,6 +150,11 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,  					reg->str = stringf("%s[%d]", node->str.c_str(), i);  					reg->is_reg = true;  					reg->is_signed = node->is_signed; +					for (auto &it : node->attributes) +						if (it.first != ID(mem2reg)) +							reg->attributes.emplace(it.first, it.second->clone()); +					reg->filename = node->filename; +					reg->linenum = node->linenum;  					children.push_back(reg);  					while (reg->simplify(true, false, false, 1, -1, false, false)) { }  				} diff --git a/frontends/blif/blifparse.cc b/frontends/blif/blifparse.cc index a6a07863f..d17cacf29 100644 --- a/frontends/blif/blifparse.cc +++ b/frontends/blif/blifparse.cc @@ -78,7 +78,7 @@ failed:  	return std::pair<RTLIL::IdString, int>("\\" + name, 0);  } -void parse_blif(RTLIL::Design *design, std::istream &f, std::string dff_name, bool run_clean, bool sop_mode, bool wideports) +void parse_blif(RTLIL::Design *design, std::istream &f, IdString dff_name, bool run_clean, bool sop_mode, bool wideports)  {  	RTLIL::Module *module = nullptr;  	RTLIL::Const *lutptr = NULL; diff --git a/frontends/blif/blifparse.h b/frontends/blif/blifparse.h index 955b6aacf..2b84cb795 100644 --- a/frontends/blif/blifparse.h +++ b/frontends/blif/blifparse.h @@ -24,7 +24,7 @@  YOSYS_NAMESPACE_BEGIN -extern void parse_blif(RTLIL::Design *design, std::istream &f, std::string dff_name, +extern void parse_blif(RTLIL::Design *design, std::istream &f, IdString dff_name,  		bool run_clean = false, bool sop_mode = false, bool wideports = false);  YOSYS_NAMESPACE_END diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc index 17c4a1e5b..c5eef4b55 100644 --- a/frontends/verific/verific.cc +++ b/frontends/verific/verific.cc @@ -1789,7 +1789,7 @@ struct VerificExtNets  				new_net = new Net(name.c_str());  				nl->Add(new_net); -				Net *n = route_up(new_net, port->IsOutput(), ca_nl, ca_net); +				Net *n YS_ATTRIBUTE(unused) = route_up(new_net, port->IsOutput(), ca_nl, ca_net);  				log_assert(n == ca_net);  			} | 
