Add mnemonic to parameter constants in JSON for FSM Coverage (#7531)

This commit is contained in:
Yogish Sekhar
2026-05-06 07:25:03 -04:00
committed by GitHub
parent 227812ecce
commit 22db9d2c66
8 changed files with 394 additions and 127 deletions
+6 -3
View File
@@ -1731,12 +1731,13 @@ class ConstVisitor final : public VNVisitor {
// Constant Replacement functions.
// These all take a node, delete its tree, and replaces it with a constant
void replaceNum(AstNode* oldp, const V3Number& num) {
void replaceNum(AstNode* oldp, const V3Number& num, const string& origParamName = "") {
// Replace oldp node with a constant set to specified value
UASSERT(oldp, "Null old");
UASSERT_OBJ(!(VN_IS(oldp, Const) && !VN_AS(oldp, Const)->num().isFourState()), oldp,
"Already constant??");
AstNode* const newp = new AstConst{oldp->fileline(), num};
AstConst* const newp = new AstConst{oldp->fileline(), num};
if (!origParamName.empty()) newp->origParamName(origParamName);
oldp->replaceWithKeepDType(newp);
UINFOTREE(6, oldp, "", "const_old");
UINFOTREE(6, newp, "", "_new");
@@ -3113,7 +3114,9 @@ class ConstVisitor final : public VNVisitor {
if (operandConst(valuep)) {
const V3Number& num = VN_AS(valuep, Const)->num();
// UINFO(2, "constVisit " << cvtToHex(valuep) << " " << num);
VL_DO_DANGLING(replaceNum(nodep, num), nodep);
const string origParamName
= nodep->varp()->isParam() ? nodep->varp()->name() : "";
VL_DO_DANGLING(replaceNum(nodep, num, origParamName), nodep);
did = true;
} else if (m_selp && VN_IS(valuep, InitArray)) {
const AstInitArray* const initarp = VN_AS(valuep, InitArray);