diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2016-02-25 10:58:58 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2016-03-06 14:25:43 +0000 |
commit | c020bc671b30ea90f6bacd8bf6cd26ce5e808a6b (patch) | |
tree | 875a541f27e050e10396bbd1f6289816ca3b6ab2 /src/qml/compiler/qv4jsir.cpp | |
parent | 3cc5c3b845b6c26d2e6c35de4672bd55b7e192b0 (diff) |
V4 IR: Store the phi-node parameters directly in the class.
Every time one of the paramets was accessed, the chain of loads was:
phi->d->incoming->heapdata[i]
Now it is:
phi[i + offsetof(incoming)]
This also removes at least one malloc (for the Data), and usually two
(when the number of parameters is <= 4, which is most of the cases).
Change-Id: I953e784647148266ae5a49a93a203d0d22cdcb63
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/qml/compiler/qv4jsir.cpp')
-rw-r--r-- | src/qml/compiler/qv4jsir.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4jsir.cpp b/src/qml/compiler/qv4jsir.cpp index 4c87b7557e..e383d1432b 100644 --- a/src/qml/compiler/qv4jsir.cpp +++ b/src/qml/compiler/qv4jsir.cpp @@ -1084,13 +1084,13 @@ void IRPrinter::visitPhi(Phi *s) s->targetTemp->accept(this); *out << " = phi "; - for (int i = 0, ei = s->d->incoming.size(); i < ei; ++i) { + for (int i = 0, ei = s->incoming.size(); i < ei; ++i) { if (i > 0) *out << ", "; if (currentBB) *out << 'L' << currentBB->in.at(i)->index() << ": "; - if (s->d->incoming[i]) - s->d->incoming[i]->accept(this); + if (s->incoming[i]) + s->incoming[i]->accept(this); } } |