From 267315e7d468a9536008a808a97a5877933768d0 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sun, 1 May 2022 22:01:30 -0400 Subject: [PATCH 1/4] Commentary: Update ChangeLog --- Changes | 7 ++++++- docs/guide/contributors.rst | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index ad4f5463c..d0062cdd9 100644 --- a/Changes +++ b/Changes @@ -17,14 +17,19 @@ Verilator 4.221 devel * Deprecate 'vluint64_t' and similar types (#3255). * Raise error on assignment to const in initial blocks. [Geza Lore, Shunyao CAD] * Issue INITIALDLY/COMBDLY/BLKSEQ warnings consistent with Verilator execution. [Geza Lore, Shunyao CAD] +* Support LoongArch ISA multithreading (#3353) (#3354). [Xi Zhang] * Fix MSVC localtime_s (#3124). * Fix Bison 3.8.2 error (#3366). [elike-ypq] * Fix rare bug in -Oz (V3Localize) (#3286). [Geza Lore, Shunyao CAD] * Fix tracing interfaces inside interfaces (#3309). [Kevin Millis] * Fix filenames with dots overwriting debug .vpp files (#3373). -* Fix including VK_USER_OBJS in make library (#3370). [Julien Margetts] +* Fix including VK_USER_OBJS in make library (#3370) (#3382). [Julien Margetts] +* Fix hang in generate symbol references (#3391) (#3398). [Yoda Lee] +* Fix missing #include (#3392). [Aliaksei Chapyzhenka] * Fix crash in recursive module inlining (#3393). [david-sawatzke] * Fix --protect-ids mangling names of library methods. [Geza Lore, Shunyao CAD] +* Fix foreach segmentation fault (#3400). [Kamil Rakoczy] + Verilator 4.220 2022-03-12 ========================== diff --git a/docs/guide/contributors.rst b/docs/guide/contributors.rst index 54e5400e2..68b17d671 100644 --- a/docs/guide/contributors.rst +++ b/docs/guide/contributors.rst @@ -23,14 +23,14 @@ Contributors Many people have provided ideas and other assistance with Verilator. Verilator is receiving major development support from the `CHIPS Alliance -`_. +`_ and `Shunyao CAD `_. Previous major corporate sponsors of Verilator, by providing significant contributions of time or funds included include: Atmel Corporation, Cavium Inc., Compaq Corporation, Digital Equipment Corporation, Embecosm Ltd., Hicamp Systems, Intel Corporation, Mindspeed Technologies Inc., MicroTune Inc., picoChip Designs Ltd., Sun Microsystems Inc., Nauticus Networks Inc., -and SiCortex Inc. +SiCortex Inc, and Shunyao CAD. The people who have contributed major functionality are: Byron Bradley, Jeremy Bennett, Lane Brooks, John Coiner, Duane Galbi, Geza Lore, Todd From a2792785fe02e28de17dd74a7541accb990602b2 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Mon, 2 May 2022 09:42:12 +0100 Subject: [PATCH 2/4] Add V3GraphVertex::dotRank to add GraphViz ranks to graph dumps This is a simple debugging aid to allow constraining the graph layout via GraphViz rank directives. Note this is not related in any way to the vertex 'rank' attribute used by some of the graph algorithms. No functional change. --- src/V3Graph.cpp | 33 ++++++++++++++++++++++++++++++++- src/V3Graph.h | 1 + 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/V3Graph.cpp b/src/V3Graph.cpp index d47b786a6..1b5bc1ae4 100644 --- a/src/V3Graph.cpp +++ b/src/V3Graph.cpp @@ -23,6 +23,8 @@ #include #include +#include +#include #include int V3Graph::s_debug = 0; @@ -325,11 +327,19 @@ void V3Graph::dumpDotFile(const string& filename, bool colorAsSubgraph) const { *logp << "\t\t rankdir=" << dotRankDir() << "];\n"; // List of all possible subgraphs + // Collections of explicit ranks + std::unordered_set ranks; + std::unordered_multimap rankSets; std::multimap subgraphs; for (V3GraphVertex* vertexp = verticesBeginp(); vertexp; vertexp = vertexp->verticesNextp()) { const string vertexSubgraph = (colorAsSubgraph && vertexp->color()) ? cvtToStr(vertexp->color()) : ""; subgraphs.emplace(vertexSubgraph, vertexp); + const string& dotRank = vertexp->dotRank(); + if (!dotRank.empty()) { + ranks.emplace(dotRank); + rankSets.emplace(dotRank, vertexp); + } } // We use a map here, as we don't want to corrupt anything (userp) in the graph, @@ -346,7 +356,10 @@ void V3Graph::dumpDotFile(const string& filename, bool colorAsSubgraph) const { if (subgr != vertexSubgraph) { if (subgr != "") *logp << "\t};\n"; subgr = vertexSubgraph; - if (subgr != "") *logp << "\tsubgraph cluster_" << subgr << " {\n"; + if (subgr != "") { + *logp << "\tsubgraph cluster_" << subgr << " {\n"; + *logp << "\tlabel=\"" << subgr << "\"\n"; + } } if (subgr != "") *logp << "\t"; *logp << "\tn" << vertexp->dotName() << (n++) << "\t[fontsize=8 " @@ -382,6 +395,24 @@ void V3Graph::dumpDotFile(const string& filename, bool colorAsSubgraph) const { } } } + + // Print ranks + for (auto dotRank : ranks) { + *logp << "\t{ rank="; + if (dotRank != "sink" && dotRank != "source" && dotRank != "min" && dotRank != "max") { + *logp << "same"; + } else { + *logp << dotRank; + } + *logp << "; "; + auto bounds = rankSets.equal_range(dotRank); + for (auto it{bounds.first}; it != bounds.second; ++it) { + if (it != bounds.first) *logp << ", "; + *logp << 'n' << numMap[it->second] << ""; + } + *logp << " }\n"; + } + // Vertex::m_user end, now unused // Trailer diff --git a/src/V3Graph.h b/src/V3Graph.h index c8319f5a8..ae59fe4a4 100644 --- a/src/V3Graph.h +++ b/src/V3Graph.h @@ -218,6 +218,7 @@ public: virtual string dotShape() const { return ""; } virtual string dotStyle() const { return ""; } virtual string dotName() const { return ""; } + virtual string dotRank() const { return ""; } virtual uint32_t rankAdder() const { return 1; } virtual FileLine* fileline() const { return nullptr; } // nullptr for unknown virtual int sortCmp(const V3GraphVertex* rhsp) const { From aa86c777f4787db7d10fbbbb5019ed4d20a7fcfb Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Mon, 2 May 2022 22:17:20 -0400 Subject: [PATCH 3/4] Version bump --- Changes | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Changes b/Changes index d0062cdd9..b1760a0d8 100644 --- a/Changes +++ b/Changes @@ -8,7 +8,7 @@ The changes in each Verilator version are described below. The contributors that suggested a given feature are shown in []. Thanks! -Verilator 4.221 devel +Verilator 4.222 2022-05-02 ========================== **Minor:** diff --git a/configure.ac b/configure.ac index a983dc6d9..5ec247c2a 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ #AC_INIT([Verilator],[#.### YYYY-MM-DD]) #AC_INIT([Verilator],[#.### devel]) -AC_INIT([Verilator],[4.221 devel], +AC_INIT([Verilator],[4.222 2022-05-02], [https://verilator.org], [verilator],[https://verilator.org]) # When releasing, also update header of Changes file From 30783e6a79f0e5ec13ab7dd7a13e03d13aab83ad Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Mon, 2 May 2022 22:23:05 -0400 Subject: [PATCH 4/4] devel release --- Changes | 7 +++++++ configure.ac | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index b1760a0d8..2d24b7418 100644 --- a/Changes +++ b/Changes @@ -8,6 +8,13 @@ The changes in each Verilator version are described below. The contributors that suggested a given feature are shown in []. Thanks! +Verilator 4.223 devel +========================== + +**Minor:** + + + Verilator 4.222 2022-05-02 ========================== diff --git a/configure.ac b/configure.ac index 5ec247c2a..f0abbb265 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ #AC_INIT([Verilator],[#.### YYYY-MM-DD]) #AC_INIT([Verilator],[#.### devel]) -AC_INIT([Verilator],[4.222 2022-05-02], +AC_INIT([Verilator],[4.223 devel], [https://verilator.org], [verilator],[https://verilator.org]) # When releasing, also update header of Changes file