mirror of
git://c9x.me/qbe.git
synced 2026-04-05 18:09:47 +00:00
skip expensive ssa-building loop when possible
If a temporary is assigned exactly once (most are), there is no need to do any work to put it in ssa form. On an input file of ~35k loc, this makes the processing time go from 2.9 secs to 1.2 secs.
This commit is contained in:
parent
60804c92a8
commit
a85fe6e2d9
7
ssa.c
7
ssa.c
@ -125,6 +125,8 @@ phiins(Fn *fn)
|
||||
fn->tmp[t].visit = 0;
|
||||
if (fn->tmp[t].phi != 0)
|
||||
continue;
|
||||
if (fn->tmp[t].ndef == 1)
|
||||
continue;
|
||||
bszero(u);
|
||||
k = -1;
|
||||
bp = be;
|
||||
@ -140,10 +142,7 @@ phiins(Fn *fn)
|
||||
}
|
||||
if (req(i->to, TMP(t))) {
|
||||
if (!bshas(b->out, t)) {
|
||||
if (fn->tmp[t].ndef == 1)
|
||||
r = TMP(t);
|
||||
else
|
||||
r = refindex(t, fn);
|
||||
r = refindex(t, fn);
|
||||
i->to = r;
|
||||
} else {
|
||||
if (!bshas(u, b->id)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user