aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia/optimiser/NameCollector.h
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2018-02-06 22:40:41 +0800
committerGitHub <noreply@github.com>2018-02-06 22:40:41 +0800
commitd786d652434d2010d9af4ef0bf0aa1fdb15c80e8 (patch)
tree83a1ce096f9cac08e40c96cef5af222b74c9b8bf /libjulia/optimiser/NameCollector.h
parent6b917eb528fcbcbb11e81810c8f6bd4d554f21e1 (diff)
parentc0abddc9dcbf1f0437ac04119a0c8c238fad44c8 (diff)
downloaddexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.tar
dexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.tar.gz
dexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.tar.bz2
dexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.tar.lz
dexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.tar.xz
dexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.tar.zst
dexon-solidity-d786d652434d2010d9af4ef0bf0aa1fdb15c80e8.zip
Merge pull request #3332 from ethereum/elimination_descirption
Rematerialisation step.
Diffstat (limited to 'libjulia/optimiser/NameCollector.h')
-rw-r--r--libjulia/optimiser/NameCollector.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libjulia/optimiser/NameCollector.h b/libjulia/optimiser/NameCollector.h
index 7fe386f7..2d4a1d4b 100644
--- a/libjulia/optimiser/NameCollector.h
+++ b/libjulia/optimiser/NameCollector.h
@@ -66,5 +66,19 @@ private:
std::map<std::string, size_t> m_references;
};
+/**
+ * Specific AST walker that finds all variables that are assigned to.
+ */
+class Assignments: public ASTWalker
+{
+public:
+ using ASTWalker::operator ();
+ virtual void operator()(Assignment const& _assignment) override;
+
+ std::set<std::string> const& names() const { return m_names; }
+private:
+ std::set<std::string> m_names;
+};
+
}
}