V4: fix range sorting
authorErik Verbruggen <erik.verbruggen@digia.com>
Thu, 30 Jan 2014 12:15:52 +0000 (13:15 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 31 Jan 2014 09:34:23 +0000 (10:34 +0100)
commit445c15c3e52192d64b28a3d22ee4aeedbe715ba0
tree3e052e69817f24b7ca38cfdae32553135313c444
parent2d95e67ff4f00260d491255ed0b2af454235a047
V4: fix range sorting

When a life-time interval is split from another interval, it has to come
before an interval that starts at the same position but is not split.

This also means that a means that the all ranges in a split interval
are uses, which is important for allocation: all incoming parameters for
an operation need to be allocated before allocating a register for the
result as the result will only start its life "at the end" of the
operation.

This patch fixes a problem register allocation is done in a function
where register pressure is high (e.g. on platforms that have few
registers to start with). Specifically, crypto.js on x86 triggered it.

Change-Id: Iee3e5d82a887b8de573dfc23513844143d0c8073
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
src/qml/compiler/qv4ssa.cpp