aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4ssa.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-05-11 10:09:12 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2017-06-09 07:55:33 +0000
commit5efbd7165d6867aa376f23c20edcfe49e80518c6 (patch)
tree2cb510332dcc5973c4c017775567e25677c01e0d /src/qml/compiler/qv4ssa.cpp
parent4ea6d985fa76786a965443f814f3f9b59620e056 (diff)
Change temp allocation when generating IR
For functions that won't get optimized, it's useful to limit the number of temporaries as much as possible. Change-Id: I6e9be3129c064fdc4c01e1ec6f1617e901c05935 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4ssa.cpp')
-rw-r--r--src/qml/compiler/qv4ssa.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp
index fc136b09ff..8cf5fac760 100644
--- a/src/qml/compiler/qv4ssa.cpp
+++ b/src/qml/compiler/qv4ssa.cpp
@@ -2770,7 +2770,7 @@ public:
} else if (Const *c = (*conversion.expr)->asConst()) {
convertConst(c, conversion.targetType);
} else if (ArgLocal *al = (*conversion.expr)->asArgLocal()) {
- Temp *target = bb->TEMP(bb->newTemp());
+ Temp *target = bb->TEMP(bb->newTemp(BasicBlock::NewTempForOptimizer));
target->type = conversion.targetType;
Expr *convert = bb->CONVERT(al, conversion.targetType);
Move *convCall = f->NewStmt<Move>();
@@ -2791,7 +2791,7 @@ public:
*conversion.expr = source;
} else if (Temp *t = (*conversion.expr)->asTemp()) {
- Temp *target = bb->TEMP(bb->newTemp());
+ Temp *target = bb->TEMP(bb->newTemp(BasicBlock::NewTempForOptimizer));
target->type = conversion.targetType;
Expr *convert = bb->CONVERT(t, conversion.targetType);
Move *convCall = f->NewStmt<Move>();
@@ -2820,7 +2820,7 @@ public:
// to:
// double{%3} = double{-double{%1}};
// int32{%2} = int32{convert(double{%3})};
- Temp *tmp = bb->TEMP(bb->newTemp());
+ Temp *tmp = bb->TEMP(bb->newTemp(BasicBlock::NewTempForOptimizer));
tmp->type = u->type;
Move *extraMove = f->NewStmt<Move>();
worklist.registerNewStatement(extraMove);