diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2013-09-26 14:49:44 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-30 11:28:55 +0200 |
commit | 7c3f891c454971ed0150e66c2261e6e5c36664a3 (patch) | |
tree | 067a59085a30ddf7ade38dd1cad078033a886486 /src/qml/compiler/qv4ssa.cpp | |
parent | 9194779ef37187b1b38d73099747459f9f5e745c (diff) |
V4: remove inplace operations
Inplace operations are expanded when building the IR, so the neither the
IR, nor the instruction selection backends or runtime need to handle
them.
Change-Id: Id01f9544e137dd52364cf2ed2c10931c31ddfff3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4ssa.cpp')
-rw-r--r-- | src/qml/compiler/qv4ssa.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp index 7054d5140c..c79f19ecf7 100644 --- a/src/qml/compiler/qv4ssa.cpp +++ b/src/qml/compiler/qv4ssa.cpp @@ -1462,7 +1462,6 @@ protected: virtual void visitExp(Exp *s) { _ty = run(s->expr); } virtual void visitMove(Move *s) { TypingResult sourceTy = run(s->source); - Q_ASSERT(s->op == OpInvalid); if (Temp *t = s->target->asTemp()) { setType(t, sourceTy.type); _ty = sourceTy; @@ -1602,7 +1601,7 @@ public: target->type = conversion.targetType; Expr *convert = bb->CONVERT(*conversion.expr, conversion.targetType); Move *convCall = f->New<Move>(); - convCall->init(target, convert, OpInvalid); + convCall->init(target, convert); Temp *source = bb->TEMP(target->index); source->type = conversion.targetType; @@ -2988,7 +2987,7 @@ void MoveMapping::insertMoves(BasicBlock *bb, Function *function, bool atEnd) co int insertionPoint = atEnd ? bb->statements.size() - 1 : 0; foreach (const Move &m, _moves) { V4IR::Move *move = function->New<V4IR::Move>(); - move->init(m.to, m.from, OpInvalid); + move->init(m.to, m.from); move->id = m.id; move->swap = m.needsSwap; bb->statements.insert(insertionPoint++, move); |