diff options
author | chriseth <chris@ethereum.org> | 2018-12-07 01:07:08 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-12-12 02:24:31 +0800 |
commit | 8d49e539951791a25a63f470e8a9935679c7404f (patch) | |
tree | 8dae3a5aa91f78576076aa4af61688cb08574c25 /libyul/backends/evm | |
parent | 9f86ede32d4aa3e53bf82d0e4c64dbea3661791b (diff) | |
download | dexon-solidity-8d49e539951791a25a63f470e8a9935679c7404f.tar.gz dexon-solidity-8d49e539951791a25a63f470e8a9935679c7404f.tar.zst dexon-solidity-8d49e539951791a25a63f470e8a9935679c7404f.zip |
Provide Dialect to EVMCodeTransform.
Diffstat (limited to 'libyul/backends/evm')
-rw-r--r-- | libyul/backends/evm/EVMCodeTransform.cpp | 2 | ||||
-rw-r--r-- | libyul/backends/evm/EVMCodeTransform.h | 10 | ||||
-rw-r--r-- | libyul/backends/evm/EVMObjectCompiler.cpp | 8 | ||||
-rw-r--r-- | libyul/backends/evm/EVMObjectCompiler.h | 9 |
4 files changed, 15 insertions, 14 deletions
diff --git a/libyul/backends/evm/EVMCodeTransform.cpp b/libyul/backends/evm/EVMCodeTransform.cpp index 9d8e9a06..025f937f 100644 --- a/libyul/backends/evm/EVMCodeTransform.cpp +++ b/libyul/backends/evm/EVMCodeTransform.cpp @@ -506,7 +506,7 @@ void CodeTransform::operator()(FunctionDefinition const& _function) m_info, _function.body, m_allowStackOpt, - m_yul, + m_dialect, m_evm15, m_identifierAccess, m_useNamedLabelsForFunctions, diff --git a/libyul/backends/evm/EVMCodeTransform.h b/libyul/backends/evm/EVMCodeTransform.h index 8927e999..e305a68c 100644 --- a/libyul/backends/evm/EVMCodeTransform.h +++ b/libyul/backends/evm/EVMCodeTransform.h @@ -22,8 +22,8 @@ #include <libyul/optimiser/ASTWalker.h> #include <libyul/AsmDataForward.h> - #include <libyul/AsmScope.h> +#include <libyul/Dialect.h> #include <boost/variant.hpp> #include <boost/optional.hpp> @@ -88,7 +88,7 @@ public: AsmAnalysisInfo& _analysisInfo, Block const& _block, bool _allowStackOpt = false, - bool _yul = false, + Dialect const& _dialect, bool _evm15 = false, ExternalIdentifierAccess const& _identifierAccess = ExternalIdentifierAccess(), bool _useNamedLabelsForFunctions = false @@ -97,7 +97,7 @@ public: _analysisInfo, _block, _allowStackOpt, - _yul, + _dialect, _evm15, _identifierAccess, _useNamedLabelsForFunctions, @@ -115,7 +115,7 @@ protected: AsmAnalysisInfo& _analysisInfo, Block const& _block, bool _allowStackOpt, - bool _yul, + Dialect const& _dialect, bool _evm15, ExternalIdentifierAccess const& _identifierAccess, bool _useNamedLabelsForFunctions, @@ -180,7 +180,7 @@ private: AsmAnalysisInfo& m_info; Scope* m_scope = nullptr; bool const m_allowStackOpt = true; - bool m_yul = false; + Dialect const& m_dialect; bool m_evm15 = false; bool m_useNamedLabelsForFunctions = false; ExternalIdentifierAccess m_identifierAccess; diff --git a/libyul/backends/evm/EVMObjectCompiler.cpp b/libyul/backends/evm/EVMObjectCompiler.cpp index 13d4b756..ec849faa 100644 --- a/libyul/backends/evm/EVMObjectCompiler.cpp +++ b/libyul/backends/evm/EVMObjectCompiler.cpp @@ -27,9 +27,9 @@ using namespace yul; using namespace std; -void EVMObjectCompiler::compile(Object& _object, AbstractAssembly& _assembly, bool _yul, bool _evm15, bool _optimize) +void EVMObjectCompiler::compile(Object& _object, AbstractAssembly& _assembly, Dialect const& _dialect, bool _evm15, bool _optimize) { - EVMObjectCompiler compiler(_assembly, _yul, _evm15); + EVMObjectCompiler compiler(_assembly, _dialect, _evm15); compiler.run(_object, _optimize); } @@ -42,7 +42,7 @@ void EVMObjectCompiler::run(Object& _object, bool _optimize) { auto subAssemblyAndID = m_assembly.createSubAssembly(); subIDs[subObject->name] = subAssemblyAndID.second; - compile(*subObject, *subAssemblyAndID.first, m_yul, m_evm15, _optimize); + compile(*subObject, *subAssemblyAndID.first, m_dialect, m_evm15, _optimize); } else { @@ -52,5 +52,5 @@ void EVMObjectCompiler::run(Object& _object, bool _optimize) yulAssert(_object.analysisInfo, "No analysis info."); yulAssert(_object.code, "No code."); - CodeTransform{m_assembly, *_object.analysisInfo, *_object.code, _optimize, m_yul, m_evm15}(*_object.code); + CodeTransform{m_assembly, *_object.analysisInfo, *_object.code, _optimize, m_yul, m_evm15, _optimize}(*_object.code); } diff --git a/libyul/backends/evm/EVMObjectCompiler.h b/libyul/backends/evm/EVMObjectCompiler.h index 826b82a4..bb265ff6 100644 --- a/libyul/backends/evm/EVMObjectCompiler.h +++ b/libyul/backends/evm/EVMObjectCompiler.h @@ -23,20 +23,21 @@ namespace yul { struct Object; class AbstractAssembly; +struct Dialect; class EVMObjectCompiler { public: - static void compile(Object& _object, AbstractAssembly& _assembly, bool _yul, bool _evm15, bool _optimize); + static void compile(Object& _object, AbstractAssembly& _assembly, Dialect const& _dialect, bool _evm15, bool _optimize); private: - EVMObjectCompiler(AbstractAssembly& _assembly, bool _yul, bool _evm15): - m_assembly(_assembly), m_yul(_yul), m_evm15(_evm15) + EVMObjectCompiler(AbstractAssembly& _assembly, Dialect const& _dialect, bool _evm15): + m_assembly(_assembly), m_dialect(_dialect), m_evm15(_evm15) {} void run(Object& _object, bool _optimize); AbstractAssembly& m_assembly; - bool m_yul = false; + Dialect const& m_dialect; bool m_evm15 = false; }; |