Revert fixed point (#8147 revert) (#8155) 86b7cfb05c

This commit is contained in:
Wilson Snyder 2026-08-19 07:54:42 -04:00
parent 700858c112
commit f88b59f39f
2 changed files with 5 additions and 5 deletions

View File

@ -47,7 +47,6 @@ Verilator 5.051 devel
* Optimize temporary insertion for single bit replicates in DFG (#8110). [Geza Lore, Testorrent USA, Inc.] * 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 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 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 $finish continuing event loop (#7267) (#7950). [Artur Bieniek, Antmicro Ltd.]
* Fix $display accepting streaming concat arguments (#7663) (#7890). [Jaeuk Lee] * Fix $display accepting streaming concat arguments (#7663) (#7890). [Jaeuk Lee]
* Fix DFG misoptimizing bound checks (#7755). [Jakub Michalski] * Fix DFG misoptimizing bound checks (#7755). [Jakub Michalski]

View File

@ -1709,7 +1709,8 @@ class ConstVisitor final : public VNVisitor {
const V3Number num{constp, subsize, constp->num()}; const V3Number num{constp, subsize, constp->num()};
nodep->lhsp(new AstConst{constp->fileline(), num}); nodep->lhsp(new AstConst{constp->fileline(), num});
VL_DO_DANGLING(pushDeletep(constp), constp); 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) { bool operandBiExtendConstOver(const AstNodeBiop* nodep) {
// EQ(const{width32}, EXTEND(xx{width3})) -> constant // EQ(const{width32}, EXTEND(xx{width3})) -> constant
@ -2069,7 +2070,7 @@ class ConstVisitor final : public VNVisitor {
rp->rhsp(bp); rp->rhsp(bp);
rp->dtypeFrom(nodep); // Upper widthMin more likely correct rp->dtypeFrom(nodep); // Upper widthMin more likely correct
if (VN_IS(rp->lhsp(), Const) && VN_IS(rp->rhsp(), Const)) replaceConst(rp); 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) { void replaceAsvLUp(AstNodeBiop* nodep) {
// BIASV(BIASV(CONSTll,lr),r) -> BIASV(CONSTll,BIASV(lr,r)) // BIASV(BIASV(CONSTll,lr),r) -> BIASV(CONSTll,BIASV(lr,r))
@ -2082,7 +2083,7 @@ class ConstVisitor final : public VNVisitor {
lp->lhsp(lrp); lp->lhsp(lrp);
lp->rhsp(rp); lp->rhsp(rp);
lp->dtypeFrom(nodep); // Upper widthMin more likely correct lp->dtypeFrom(nodep); // Upper widthMin more likely correct
iterate(nodep); // Proceed to fixed point // UINFOTREE(1, nodep, "", "repAsvLUp_new");
} }
void replaceAsvRUp(AstNodeBiop* nodep) { void replaceAsvRUp(AstNodeBiop* nodep) {
// BIASV(l,BIASV(CONSTrl,rr)) -> BIASV(CONSTrl,BIASV(l,rr)) // BIASV(l,BIASV(CONSTrl,rr)) -> BIASV(CONSTrl,BIASV(l,rr))
@ -2095,7 +2096,7 @@ class ConstVisitor final : public VNVisitor {
rp->lhsp(lp); rp->lhsp(lp);
rp->rhsp(rrp); rp->rhsp(rrp);
rp->dtypeFrom(nodep); // Upper widthMin more likely correct rp->dtypeFrom(nodep); // Upper widthMin more likely correct
iterate(nodep); // Proceed to fixed point // UINFOTREE(1, nodep, "", "repAsvRUp_new");
} }
void replaceAndOr(AstNodeBiop* nodep) { void replaceAndOr(AstNodeBiop* nodep) {
// OR (AND (CONSTll,lr), AND(CONSTrl==ll,rr)) -> AND (CONSTll, OR(lr,rr)) // OR (AND (CONSTll,lr), AND(CONSTrl==ll,rr)) -> AND (CONSTll, OR(lr,rr))