From 970ec34e7053704fb748fdc80b9ebaf277bce98d Mon Sep 17 00:00:00 2001 From: whitequark Date: Tue, 9 Jun 2020 20:55:40 +0000 Subject: [PATCH] cxxrtl: order -On levels as localize, elide instead of the reverse. Historically, elision was implemented before localization, so levels with elision are lower than corresponding levels with localization. This is unfortunate for two reasons: 1. Elision is a logical subset of localization, since it equals to not giving a name to a temporary. 2. "Localize" currently actually means "unbuffer and localize", and it would be useful to split those steps (at least for public wires) for improved design visibility. --- backends/cxxrtl/cxxrtl_backend.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc index 0ab8352c2..b1d89a7c2 100644 --- a/backends/cxxrtl/cxxrtl_backend.cc +++ b/backends/cxxrtl/cxxrtl_backend.cc @@ -2490,16 +2490,16 @@ struct CxxrtlBackend : public Backend { log(" no optimization.\n"); log("\n"); log(" -O1\n"); - log(" elide internal wires if possible.\n"); + log(" localize internal wires if possible.\n"); log("\n"); log(" -O2\n"); - log(" like -O1, and localize internal wires if possible.\n"); + log(" like -O1, and elide internal wires if possible.\n"); log("\n"); log(" -O3\n"); - log(" like -O2, and elide public wires not marked (*keep*) if possible.\n"); + log(" like -O2, and localize public wires not marked (*keep*) if possible.\n"); log("\n"); log(" -O4\n"); - log(" like -O3, and localize public wires not marked (*keep*) if possible.\n"); + log(" like -O3, and elide public wires not marked (*keep*) if possible.\n"); log("\n"); log(" -g \n"); log(" set the debug level. the default is -g%d. higher debug levels provide\n", DEFAULT_DEBUG_LEVEL); @@ -2568,16 +2568,16 @@ struct CxxrtlBackend : public Backend { switch (opt_level) { // the highest level here must match DEFAULT_OPT_LEVEL case 4: - worker.localize_public = true; + worker.elide_public = true; YS_FALLTHROUGH case 3: - worker.elide_public = true; + worker.localize_public = true; YS_FALLTHROUGH case 2: - worker.localize_internal = true; + worker.elide_internal = true; YS_FALLTHROUGH case 1: - worker.elide_internal = true; + worker.localize_internal = true; YS_FALLTHROUGH case 0: break; -- 2.30.2