mirror of
git://c9x.me/qbe.git
synced 2026-04-05 09:59:47 +00:00
Blk::ins is a vector
Scratching an itch - avoid unnecesary re-allocation in idup() which is called often in the optimisation chain. Blk::ins is reallocated in xxx_abi() - needs further fiddling.
This commit is contained in:
parent
024dffac8b
commit
ca928f6f8d
@ -670,7 +670,7 @@ amd64_sysv_abi(Fn *fn)
|
|||||||
break;
|
break;
|
||||||
fa = selpar(fn, b->ins, i);
|
fa = selpar(fn, b->ins, i);
|
||||||
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
||||||
i0 = alloc(n * sizeof(Ins));
|
i0 = vnew(n, sizeof(Ins), PFn);
|
||||||
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
||||||
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
||||||
b->nins = n;
|
b->nins = n;
|
||||||
|
|||||||
@ -744,7 +744,7 @@ arm64_abi(Fn *fn)
|
|||||||
break;
|
break;
|
||||||
p = selpar(fn, b->ins, i);
|
p = selpar(fn, b->ins, i);
|
||||||
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
||||||
i0 = alloc(n * sizeof(Ins));
|
i0 = vnew(n, sizeof(Ins), PFn);
|
||||||
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
||||||
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
||||||
b->nins = n;
|
b->nins = n;
|
||||||
|
|||||||
@ -601,7 +601,7 @@ rv64_abi(Fn *fn)
|
|||||||
break;
|
break;
|
||||||
p = selpar(fn, b->ins, i);
|
p = selpar(fn, b->ins, i);
|
||||||
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
||||||
i0 = alloc(n * sizeof(Ins));
|
i0 = vnew(n, sizeof(Ins), PFn);
|
||||||
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
||||||
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
||||||
b->nins = n;
|
b->nins = n;
|
||||||
|
|||||||
5
util.c
5
util.c
@ -255,7 +255,10 @@ emiti(Ins i)
|
|||||||
void
|
void
|
||||||
idup(Ins **pd, Ins *s, ulong n)
|
idup(Ins **pd, Ins *s, ulong n)
|
||||||
{
|
{
|
||||||
*pd = alloc(n * sizeof(Ins));
|
if (*pd)
|
||||||
|
vgrow(pd, n);
|
||||||
|
else
|
||||||
|
*pd = vnew(n, sizeof(Ins), PFn);
|
||||||
if (n)
|
if (n)
|
||||||
memcpy(*pd, s, n * sizeof(Ins));
|
memcpy(*pd, s, n * sizeof(Ins));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user