Inlined function calls
This commit is contained in:
parent
2e1ef6c854
commit
d1bb60f47a
|
|
@ -988,15 +988,11 @@ class FsmDetectVisitor final : public VNVisitor {
|
||||||
return assp;
|
return assp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static AstVarRef* extractVarRefQuiet(AstNodeExpr* const exprp) {
|
|
||||||
return VN_CAST(AstArraySel::baseFromp(exprp, true), VarRef);
|
|
||||||
}
|
|
||||||
|
|
||||||
static AstNodeAssign* nodeStateVarAssign(AstNode* nodep, AstVarScope*& stateVscp,
|
static AstNodeAssign* nodeStateVarAssign(AstNode* nodep, AstVarScope*& stateVscp,
|
||||||
AstVarScope*& fromVscp) {
|
AstVarScope*& fromVscp) {
|
||||||
AstNodeAssign* const assp = VN_CAST(nodep, NodeAssign);
|
AstNodeAssign* const assp = VN_CAST(nodep, NodeAssign);
|
||||||
if (!assp) return nullptr;
|
if (!assp) return nullptr;
|
||||||
AstVarRef* const lhsp = extractVarRefQuiet(assp->lhsp());
|
AstVarRef* const lhsp = VN_CAST(AstArraySel::baseFromp(assp->lhsp(), true), VarRef);
|
||||||
AstVarRef* const rhsp = VN_CAST(assp->rhsp(), VarRef);
|
AstVarRef* const rhsp = VN_CAST(assp->rhsp(), VarRef);
|
||||||
if (!rhsp || !lhsp) return nullptr;
|
if (!rhsp || !lhsp) return nullptr;
|
||||||
stateVscp = lhsp->varScopep();
|
stateVscp = lhsp->varScopep();
|
||||||
|
|
@ -1010,7 +1006,7 @@ class FsmDetectVisitor final : public VNVisitor {
|
||||||
FsmStateValue& resetValue) {
|
FsmStateValue& resetValue) {
|
||||||
AstNodeAssign* const assp = VN_CAST(nodep, NodeAssign);
|
AstNodeAssign* const assp = VN_CAST(nodep, NodeAssign);
|
||||||
if (!assp) return nullptr;
|
if (!assp) return nullptr;
|
||||||
AstVarRef* const lhsp = extractVarRefQuiet(assp->lhsp());
|
AstVarRef* const lhsp = VN_CAST(AstArraySel::baseFromp(assp->lhsp(), true), VarRef);
|
||||||
AstCond* const rhsp = VN_CAST(assp->rhsp(), Cond);
|
AstCond* const rhsp = VN_CAST(assp->rhsp(), Cond);
|
||||||
if (!rhsp || !lhsp) return nullptr;
|
if (!rhsp || !lhsp) return nullptr;
|
||||||
if (AstVarRef* const elsep = VN_CAST(rhsp->elsep(), VarRef)) {
|
if (AstVarRef* const elsep = VN_CAST(rhsp->elsep(), VarRef)) {
|
||||||
|
|
@ -1222,7 +1218,7 @@ class FsmDetectVisitor final : public VNVisitor {
|
||||||
AstVarRef* vrefp = VN_CAST(eqp->lhsp(), VarRef);
|
AstVarRef* vrefp = VN_CAST(eqp->lhsp(), VarRef);
|
||||||
AstNodeExpr* valuep = eqp->rhsp();
|
AstNodeExpr* valuep = eqp->rhsp();
|
||||||
if (!vrefp) {
|
if (!vrefp) {
|
||||||
vrefp = extractVarRefQuiet(eqp->rhsp());
|
vrefp = VN_CAST(AstArraySel::baseFromp(eqp->rhsp(), true), VarRef);
|
||||||
if (!vrefp) { return false; }
|
if (!vrefp) { return false; }
|
||||||
valuep = eqp->lhsp();
|
valuep = eqp->lhsp();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue