3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-10-10 09:48:06 +00:00

driver: add --no-private-id-locs and NEWER_ID

This commit is contained in:
Emil J. Tywoniak 2025-09-16 17:41:55 +02:00
parent 85bcdee232
commit e4d4de1020
3 changed files with 29 additions and 1 deletions

View file

@ -292,6 +292,7 @@ int main(int argc, char **argv)
cxxopts::value<std::vector<std::string>>(), "<feature>") cxxopts::value<std::vector<std::string>>(), "<feature>")
("g,debug", "globally enable debug log messages") ("g,debug", "globally enable debug log messages")
("perffile", "write a JSON performance log to <perffile>", cxxopts::value<std::string>(), "<perffile>") ("perffile", "write a JSON performance log to <perffile>", cxxopts::value<std::string>(), "<perffile>")
("no-private-id-locs", "turn off putting source file locations into object IDs")
; ;
options.parse_positional({"infile"}); options.parse_positional({"infile"});
@ -436,6 +437,7 @@ int main(int argc, char **argv)
log_experimentals_ignored.insert(ignores.begin(), ignores.end()); log_experimentals_ignored.insert(ignores.begin(), ignores.end());
} }
if (result.count("perffile")) perffile = result["perffile"].as<std::string>(); if (result.count("perffile")) perffile = result["perffile"].as<std::string>();
if (result.count("no-private-id-locs")) yosys_private_id_locs = false;
if (result.count("infile")) { if (result.count("infile")) {
frontend_files = result["infile"].as<std::vector<std::string>>(); frontend_files = result["infile"].as<std::vector<std::string>>();
} }

View file

@ -82,6 +82,7 @@ YOSYS_NAMESPACE_BEGIN
int autoidx = 1; int autoidx = 1;
int yosys_xtrace = 0; int yosys_xtrace = 0;
bool yosys_write_versions = true; bool yosys_write_versions = true;
bool yosys_private_id_locs = true;
const char* yosys_maybe_version() { const char* yosys_maybe_version() {
if (yosys_write_versions) if (yosys_write_versions)
return yosys_version_str; return yosys_version_str;
@ -272,6 +273,16 @@ void yosys_shutdown()
} }
RTLIL::IdString new_id(std::string file, int line, std::string func) RTLIL::IdString new_id(std::string file, int line, std::string func)
{
return newer_id(file, line, func);
}
RTLIL::IdString new_id_suffix(std::string file, int line, std::string func, std::string suffix)
{
return newer_id_suffix(file, line, func, suffix);
}
RTLIL::IdString newer_id(std::string file, int line, std::string func)
{ {
#ifdef _WIN32 #ifdef _WIN32
size_t pos = file.find_last_of("/\\"); size_t pos = file.find_last_of("/\\");
@ -288,7 +299,7 @@ RTLIL::IdString new_id(std::string file, int line, std::string func)
return stringf("$auto$%s:%d:%s$%d", file, line, func, autoidx++); return stringf("$auto$%s:%d:%s$%d", file, line, func, autoidx++);
} }
RTLIL::IdString new_id_suffix(std::string file, int line, std::string func, std::string suffix) RTLIL::IdString newer_id_suffix(std::string file, int line, std::string func, std::string suffix)
{ {
#ifdef _WIN32 #ifdef _WIN32
size_t pos = file.find_last_of("/\\"); size_t pos = file.find_last_of("/\\");

View file

@ -268,8 +268,13 @@ inline int GetSize(RTLIL::Wire *wire);
extern int autoidx; extern int autoidx;
extern int yosys_xtrace; extern int yosys_xtrace;
extern bool yosys_write_versions; extern bool yosys_write_versions;
extern bool yosys_private_id_locs;
RTLIL::IdString newer_id(std::string file, int line, std::string func);
RTLIL::IdString newer_id_suffix(std::string file, int line, std::string func, std::string suffix);
[[deprecated("Use NEWER_ID instead of NEW_ID")]]
RTLIL::IdString new_id(std::string file, int line, std::string func); RTLIL::IdString new_id(std::string file, int line, std::string func);
[[deprecated("Use NEWER_ID_SUFFIX instead of NEW_ID_SUFFIX")]]
RTLIL::IdString new_id_suffix(std::string file, int line, std::string func, std::string suffix); RTLIL::IdString new_id_suffix(std::string file, int line, std::string func, std::string suffix);
#define NEW_ID \ #define NEW_ID \
@ -277,6 +282,16 @@ RTLIL::IdString new_id_suffix(std::string file, int line, std::string func, std:
#define NEW_ID_SUFFIX(suffix) \ #define NEW_ID_SUFFIX(suffix) \
YOSYS_NAMESPACE_PREFIX new_id_suffix(__FILE__, __LINE__, __FUNCTION__, suffix) YOSYS_NAMESPACE_PREFIX new_id_suffix(__FILE__, __LINE__, __FUNCTION__, suffix)
#define NEWER_ID \
(YOSYS_NAMESPACE_PREFIX yosys_private_id_locs ? \
YOSYS_NAMESPACE_PREFIX newer_id(__FILE__, __LINE__, __FUNCTION__) : \
YOSYS_NAMESPACE_PREFIX newer_id("?", 0, "?"))
#define NEWER_ID_SUFFIX(suffix) \
(YOSYS_NAMESPACE_PREFIX yosys_private_id_locs ? \
YOSYS_NAMESPACE_PREFIX newer_id_suffix(__FILE__, __LINE__, __FUNCTION__, suffix) : \
YOSYS_NAMESPACE_PREFIX newer_id_suffix("?", 0, "?", suffix))
namespace ID = RTLIL::ID; namespace ID = RTLIL::ID;