diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-07-23 12:17:28 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-08-18 16:05:51 +0200 |
commit | 7e5a589b905969a5712b801cec01be257fbc237c (patch) | |
tree | 77474e5ba865779da494463a3bab2a4fafd10183 /src/qml/compiler/qv4jsir_p.h | |
parent | 23193dbdd1ed777731e34b25d0ab19d190014152 (diff) |
V4 IR: add immediate dominator re-calculation.
When removing edges, the control-flow graph changes, so some immediate
dominators might need to be updated. This change collects all candidates
and processes them in a single batch.
Change-Id: I928f42232427a84bcb9658e314dadd0bd021b12f
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4jsir_p.h')
-rw-r--r-- | src/qml/compiler/qv4jsir_p.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 6f42a50a72..e3499363dc 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -710,14 +710,16 @@ struct CJump: Stmt { Expr *cond; // Temp, Binop BasicBlock *iftrue; BasicBlock *iffalse; + BasicBlock *parent; CJump(int id): Stmt(id) {} - void init(Expr *cond, BasicBlock *iftrue, BasicBlock *iffalse) + void init(Expr *cond, BasicBlock *iftrue, BasicBlock *iffalse, BasicBlock *parent) { this->cond = cond; this->iftrue = iftrue; this->iffalse = iffalse; + this->parent = parent; } virtual Stmt *asTerminator() { return this; } |