mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-21 20:26:41 +00:00
Introducing RuntimeHelper - a compiler helper that depends on runtime data [#81470252]
This commit is contained in:
parent
9ca2663297
commit
2b898fc06a
2 changed files with 25 additions and 0 deletions
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <llvm/IR/Function.h>
|
#include <llvm/IR/Function.h>
|
||||||
|
|
||||||
|
#include "Runtime.h"
|
||||||
|
|
||||||
namespace dev
|
namespace dev
|
||||||
{
|
{
|
||||||
namespace eth
|
namespace eth
|
||||||
|
|
@ -29,6 +31,12 @@ llvm::Function* CompilerHelper::getMainFunction()
|
||||||
return mainFunc;
|
return mainFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RuntimeHelper::RuntimeHelper(RuntimeManager& _runtimeManager):
|
||||||
|
CompilerHelper(_runtimeManager.getBuilder()),
|
||||||
|
m_runtimeManager(_runtimeManager)
|
||||||
|
{}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ namespace eth
|
||||||
{
|
{
|
||||||
namespace jit
|
namespace jit
|
||||||
{
|
{
|
||||||
|
class RuntimeManager;
|
||||||
|
|
||||||
/// Base class for compiler helpers like Memory, GasMeter, etc.
|
/// Base class for compiler helpers like Memory, GasMeter, etc.
|
||||||
class CompilerHelper
|
class CompilerHelper
|
||||||
|
|
@ -28,6 +29,22 @@ protected:
|
||||||
|
|
||||||
/// Reference to parent compiler IR builder
|
/// Reference to parent compiler IR builder
|
||||||
llvm::IRBuilder<>& m_builder;
|
llvm::IRBuilder<>& m_builder;
|
||||||
|
llvm::IRBuilder<>& getBuilder() { return m_builder; }
|
||||||
|
|
||||||
|
friend class RuntimeHelper;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/// Compiler helper that depends on runtime data
|
||||||
|
class RuntimeHelper : public CompilerHelper
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
RuntimeHelper(RuntimeManager& _runtimeManager);
|
||||||
|
|
||||||
|
RuntimeManager& getRuntimeManager() { return m_runtimeManager; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
RuntimeManager& m_runtimeManager;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue