V4 IR: do edge splitting after SSA transformation
authorErik Verbruggen <erik.verbruggen@digia.com>
Wed, 15 Jan 2014 09:45:28 +0000 (10:45 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 16 Jan 2014 18:19:44 +0000 (19:19 +0100)
commit73f4fdbef816ff623142bee6c235f06c4bdf58d3
treed121b11c44f6e07b903c48e4c7ee424fd5e206bc
parenta03a6499ab64da2003d2d8a4691ea89606af1f8b
V4 IR: do edge splitting after SSA transformation

This reduces the work for the dominator tree/frontier calculations,
because there are less blocks to consider. All blocks inserted by
splitting the critical edges, have (by definition) no effect on the
dominator calculations. However, the immediate dominators for all new
blocks needs to be added, because this information is used by the block
scheduling.

This change reduces memory/time usage during optimization passes,
especially when processing excessively big switch statements.

Change-Id: Ia69882e9dabdddffa1c98b1079012d8d988e1e8f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/compiler/qv4ssa.cpp