From f88b59f39f6867545a0679431971c497ecbfa6cb Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Wed, 19 Aug 2026 07:54:42 -0400 Subject: [PATCH] Revert fixed point (#8147 revert) (#8155) 86b7cfb05cc6b3df965c6ec3ac351c106fdcfabb --- Changes | 1 - src/V3Const.cpp | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Changes b/Changes index aa1c34eae..dbea1ed4d 100644 --- a/Changes +++ b/Changes @@ -47,7 +47,6 @@ Verilator 5.051 devel * Optimize temporary insertion for single bit replicates in DFG (#8110). [Geza Lore, Testorrent USA, Inc.] * Optimize mtask coarsening in multi-threaded scheduling (#8120). [Geza Lore, Testorrent USA, Inc.] * Optimize NFA delay-ring edge traversal, drop complexity to linear (#8145). [Artur Bieniek, Antmicro Ltd.] -* Optimize associative constant patterns to fixed point (#8147). [Geza Lore, Testorrent USA, Inc.] * Fix $finish continuing event loop (#7267) (#7950). [Artur Bieniek, Antmicro Ltd.] * Fix $display accepting streaming concat arguments (#7663) (#7890). [Jaeuk Lee] * Fix DFG misoptimizing bound checks (#7755). [Jakub Michalski] diff --git a/src/V3Const.cpp b/src/V3Const.cpp index c6e5895f4..47c7bbd13 100644 --- a/src/V3Const.cpp +++ b/src/V3Const.cpp @@ -1709,7 +1709,8 @@ class ConstVisitor final : public VNVisitor { const V3Number num{constp, subsize, constp->num()}; nodep->lhsp(new AstConst{constp->fileline(), num}); VL_DO_DANGLING(pushDeletep(constp), constp); - return false; // input node is still valid, keep going + UINFOTREE(9, nodep, "", "BI(EXTEND)-ou"); + return true; } bool operandBiExtendConstOver(const AstNodeBiop* nodep) { // EQ(const{width32}, EXTEND(xx{width3})) -> constant @@ -2069,7 +2070,7 @@ class ConstVisitor final : public VNVisitor { rp->rhsp(bp); rp->dtypeFrom(nodep); // Upper widthMin more likely correct if (VN_IS(rp->lhsp(), Const) && VN_IS(rp->rhsp(), Const)) replaceConst(rp); - iterate(nodep); // Proceed to fixed point + // UINFOTREE(1, nodep, "", "repAsvConst_new"); } void replaceAsvLUp(AstNodeBiop* nodep) { // BIASV(BIASV(CONSTll,lr),r) -> BIASV(CONSTll,BIASV(lr,r)) @@ -2082,7 +2083,7 @@ class ConstVisitor final : public VNVisitor { lp->lhsp(lrp); lp->rhsp(rp); lp->dtypeFrom(nodep); // Upper widthMin more likely correct - iterate(nodep); // Proceed to fixed point + // UINFOTREE(1, nodep, "", "repAsvLUp_new"); } void replaceAsvRUp(AstNodeBiop* nodep) { // BIASV(l,BIASV(CONSTrl,rr)) -> BIASV(CONSTrl,BIASV(l,rr)) @@ -2095,7 +2096,7 @@ class ConstVisitor final : public VNVisitor { rp->lhsp(lp); rp->rhsp(rrp); rp->dtypeFrom(nodep); // Upper widthMin more likely correct - iterate(nodep); // Proceed to fixed point + // UINFOTREE(1, nodep, "", "repAsvRUp_new"); } void replaceAndOr(AstNodeBiop* nodep) { // OR (AND (CONSTll,lr), AND(CONSTrl==ll,rr)) -> AND (CONSTll, OR(lr,rr))