From 3fc118ba21ea2731dff951e65bd103ef5c59b8fd Mon Sep 17 00:00:00 2001 From: chriseth Date: Tue, 4 Dec 2018 18:57:32 +0100 Subject: Analyze and compile sub-objects. --- libsolidity/interface/AssemblyStack.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libsolidity/interface/AssemblyStack.h') diff --git a/libsolidity/interface/AssemblyStack.h b/libsolidity/interface/AssemblyStack.h index 0d04ffec..485ec1e7 100644 --- a/libsolidity/interface/AssemblyStack.h +++ b/libsolidity/interface/AssemblyStack.h @@ -83,6 +83,9 @@ public: private: bool analyzeParsed(); + bool analyzeParsed(yul::Object& _object); + + void optimize(yul::Object& _object); Language m_language = Language::Assembly; EVMVersion m_evmVersion; -- cgit v1.2.3 From 362648a45042d74da4e631520c0be581902c871b Mon Sep 17 00:00:00 2001 From: liangdzou Date: Tue, 25 Sep 2018 10:47:25 +0800 Subject: Reuse stack slots in Yul to EVM code generation. --- libsolidity/interface/AssemblyStack.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libsolidity/interface/AssemblyStack.h') diff --git a/libsolidity/interface/AssemblyStack.h b/libsolidity/interface/AssemblyStack.h index 485ec1e7..6cfefcd8 100644 --- a/libsolidity/interface/AssemblyStack.h +++ b/libsolidity/interface/AssemblyStack.h @@ -73,7 +73,8 @@ public: void optimize(); /// Run the assembly step (should only be called after parseAndAnalyze). - MachineAssemblyObject assemble(Machine _machine) const; + /// @param _optimize does not run the optimizer but performs optimized code generation. + MachineAssemblyObject assemble(Machine _machine, bool _optimize = false) const; /// @returns the errors generated during parsing, analysis (and potentially assembly). langutil::ErrorList const& errors() const { return m_errors; } -- cgit v1.2.3 From fb3a0ac1c7d2c4624df6ae62d290a2de7768d036 Mon Sep 17 00:00:00 2001 From: chriseth Date: Fri, 7 Dec 2018 00:56:16 +0100 Subject: Codegen for object access. --- libsolidity/interface/AssemblyStack.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libsolidity/interface/AssemblyStack.h') diff --git a/libsolidity/interface/AssemblyStack.h b/libsolidity/interface/AssemblyStack.h index 6cfefcd8..c8e3d35a 100644 --- a/libsolidity/interface/AssemblyStack.h +++ b/libsolidity/interface/AssemblyStack.h @@ -36,6 +36,10 @@ namespace langutil { class Scanner; } +namespace yul +{ +class AbstractAssembly; +} namespace dev { @@ -86,6 +90,8 @@ private: bool analyzeParsed(); bool analyzeParsed(yul::Object& _object); + void compileEVM(yul::AbstractAssembly& _assembly, bool _evm15, bool _optimize) const; + void optimize(yul::Object& _object); Language m_language = Language::Assembly; -- cgit v1.2.3 From 340ee4156d6c133a40ebb50284ab49ae0ebb7d69 Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Mon, 17 Dec 2018 19:24:42 +0100 Subject: Sort includes in libsolidity/interface --- libsolidity/interface/AssemblyStack.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libsolidity/interface/AssemblyStack.h') diff --git a/libsolidity/interface/AssemblyStack.h b/libsolidity/interface/AssemblyStack.h index c8e3d35a..01db6b61 100644 --- a/libsolidity/interface/AssemblyStack.h +++ b/libsolidity/interface/AssemblyStack.h @@ -29,8 +29,8 @@ #include -#include #include +#include namespace langutil { -- cgit v1.2.3