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 "Runtime.h"
|
||||
|
||||
namespace dev
|
||||
{
|
||||
namespace eth
|
||||
|
|
@ -29,6 +31,12 @@ llvm::Function* CompilerHelper::getMainFunction()
|
|||
return mainFunc;
|
||||
}
|
||||
|
||||
|
||||
RuntimeHelper::RuntimeHelper(RuntimeManager& _runtimeManager):
|
||||
CompilerHelper(_runtimeManager.getBuilder()),
|
||||
m_runtimeManager(_runtimeManager)
|
||||
{}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace eth
|
|||
{
|
||||
namespace jit
|
||||
{
|
||||
class RuntimeManager;
|
||||
|
||||
/// Base class for compiler helpers like Memory, GasMeter, etc.
|
||||
class CompilerHelper
|
||||
|
|
@ -28,6 +29,22 @@ protected:
|
|||
|
||||
/// Reference to parent compiler IR 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