aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/AssemblyStack.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity/interface/AssemblyStack.h')
-rw-r--r--libsolidity/interface/AssemblyStack.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/libsolidity/interface/AssemblyStack.h b/libsolidity/interface/AssemblyStack.h
index 485ec1e7..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
{
@@ -73,7 +77,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; }
@@ -85,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;