diff options
| author | Roland Paterson-Jones <[email protected]> | 2024-10-22 14:22:49 +0200 |
|---|---|---|
| committer | Quentin Carbonneaux <[email protected]> | 2025-03-14 09:47:05 +0100 |
| commit | ca928f6f8d18b4cf3acd1dd4b7443a5631c06af2 (patch) | |
| tree | 9eedbe65cc60f271a3ec12623b36cbcd68117815 | |
| parent | 024dffac8bbfa709ed3aed53d14b235e67047490 (diff) | |
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.
| -rw-r--r-- | amd64/sysv.c | 2 | ||||
| -rw-r--r-- | arm64/abi.c | 2 | ||||
| -rw-r--r-- | rv64/abi.c | 2 | ||||
| -rw-r--r-- | util.c | 5 |
4 files changed, 7 insertions, 4 deletions
diff --git a/amd64/sysv.c b/amd64/sysv.c index 5b559c1..ba4dc8e 100644 --- a/amd64/sysv.c +++ b/amd64/sysv.c @@ -670,7 +670,7 @@ amd64_sysv_abi(Fn *fn) break; fa = selpar(fn, b->ins, i); 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, i, &b->ins[b->nins] - i); b->nins = n; diff --git a/arm64/abi.c b/arm64/abi.c index b9e6a14..fc23637 100644 --- a/arm64/abi.c +++ b/arm64/abi.c @@ -744,7 +744,7 @@ arm64_abi(Fn *fn) break; p = selpar(fn, b->ins, i); 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, i, &b->ins[b->nins] - i); b->nins = n; @@ -601,7 +601,7 @@ rv64_abi(Fn *fn) break; p = selpar(fn, b->ins, i); 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, i, &b->ins[b->nins] - i); b->nins = n; @@ -255,7 +255,10 @@ emiti(Ins i) void 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) memcpy(*pd, s, n * sizeof(Ins)); } |
