aboutsummaryrefslogtreecommitdiffstats
path: root/libyul
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-12-07 01:07:08 +0800
committerchriseth <chris@ethereum.org>2018-12-12 02:24:31 +0800
commit8d49e539951791a25a63f470e8a9935679c7404f (patch)
tree8dae3a5aa91f78576076aa4af61688cb08574c25 /libyul
parent9f86ede32d4aa3e53bf82d0e4c64dbea3661791b (diff)
downloaddexon-solidity-8d49e539951791a25a63f470e8a9935679c7404f.tar.gz
dexon-solidity-8d49e539951791a25a63f470e8a9935679c7404f.tar.zst
dexon-solidity-8d49e539951791a25a63f470e8a9935679c7404f.zip
Provide Dialect to EVMCodeTransform.
Diffstat (limited to 'libyul')
-rw-r--r--libyul/backends/evm/EVMCodeTransform.cpp2
-rw-r--r--libyul/backends/evm/EVMCodeTransform.h10
-rw-r--r--libyul/backends/evm/EVMObjectCompiler.cpp8
-rw-r--r--libyul/backends/evm/EVMObjectCompiler.h9
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;
};