Optimize functions reading external parameters as pure (#6684)

This commit is contained in:
Geza Lore
2025-11-12 08:27:42 -05:00
committed by GitHub
parent 0dc9f779f8
commit 158f51fb54
5 changed files with 64 additions and 26 deletions
+3 -2
View File
@@ -271,8 +271,9 @@ private:
}
void visit(AstVarRef* nodep) override {
iterateChildren(nodep);
if (nodep->varp()->user4u().toGraphVertex() != m_curVxp) {
if (m_curVxp->pure() && !nodep->varp()->isXTemp()) m_curVxp->impure(nodep);
AstVar* const varp = nodep->varp();
if (varp->user4u().toGraphVertex() != m_curVxp) {
if (m_curVxp->pure() && !varp->isXTemp() && !varp->isParam()) m_curVxp->impure(nodep);
}
}
void visit(AstClass* nodep) override {