aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4isel_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-08-20 16:54:29 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-08-20 16:54:29 +0200
commit461892e492e0bef399714557498380703b3e029b (patch)
treead82e1ae8286bbe650b2ee19ad393a4ab8996bb1 /src/qml/compiler/qv4isel_p.h
parenta71e35a95c9f352db91fb82d8a564d01ba961341 (diff)
parent90aaff37be419ca1f1da40df64424c0d88bfaf19 (diff)
Merge branch 'wip/v4' of ssh://codereview.qt-project.org/qt/qtdeclarative into dev
Conflicts: src/qml/compiler/qv4codegen.cpp src/qml/compiler/qv4codegen_p.h src/qml/compiler/qv4isel_moth.cpp src/qml/jsruntime/qv4context_p.h src/qml/jsruntime/qv4functionobject.cpp src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4runtime_p.h src/qml/jsruntime/qv4script.cpp sync.profile Change-Id: I1d785e2134bffac9553a1c16eed12816cbd1ad2c
Diffstat (limited to 'src/qml/compiler/qv4isel_p.h')
-rw-r--r--src/qml/compiler/qv4isel_p.h21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/qml/compiler/qv4isel_p.h b/src/qml/compiler/qv4isel_p.h
index 947583a907..6f4b042a09 100644
--- a/src/qml/compiler/qv4isel_p.h
+++ b/src/qml/compiler/qv4isel_p.h
@@ -44,6 +44,8 @@
#include "private/qv4global_p.h"
#include "qv4jsir_p.h"
+#include <private/qv4compileddata_p.h>
+#include <private/qv4compiler_p.h>
#include <qglobal.h>
#include <QHash>
@@ -51,39 +53,36 @@
QT_BEGIN_NAMESPACE
namespace QV4 {
-struct ExecutionEngine;
+class ExecutableAllocator;
struct Function;
}
namespace QQmlJS {
-class Q_QML_EXPORT EvalInstructionSelection
+class Q_QML_EXPORT EvalInstructionSelection : public QV4::Compiler::JSUnitGenerator
{
public:
- EvalInstructionSelection(QV4::ExecutionEngine *engine, V4IR::Module *module);
+ EvalInstructionSelection(QV4::ExecutableAllocator *execAllocator, V4IR::Module *module);
virtual ~EvalInstructionSelection() = 0;
- QV4::Function *vmFunction(V4IR::Function *f);
+ QV4::CompiledData::CompilationUnit *compile();
void setUseFastLookups(bool b) { useFastLookups = b; }
protected:
- QV4::Function *createFunctionMapping(QV4::Function *outer, V4IR::Function *irFunction);
- QV4::ExecutionEngine *engine() const { return _engine; }
- virtual void run(QV4::Function *vmFunction, V4IR::Function *function) = 0;
+ virtual void run(V4IR::Function *function) = 0;
+ virtual QV4::CompiledData::CompilationUnit *backendCompileStep() = 0;
-private:
- QV4::ExecutionEngine *_engine;
- QHash<V4IR::Function *, QV4::Function *> _irToVM;
protected:
bool useFastLookups;
+ QV4::ExecutableAllocator *executableAllocator;
};
class Q_QML_EXPORT EvalISelFactory
{
public:
virtual ~EvalISelFactory() = 0;
- virtual EvalInstructionSelection *create(QV4::ExecutionEngine *engine, V4IR::Module *module) = 0;
+ virtual EvalInstructionSelection *create(QV4::ExecutableAllocator *execAllocator, V4IR::Module *module) = 0;
virtual bool jitCompileRegexps() const = 0;
};