aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-10-07 21:36:52 +0200
committerlemon <lsof@mailbox.org>2025-10-08 18:51:04 +0200
commitde0ff34465d9c6a34a359b0b05af1f5c34905c6c (patch)
treed8affa01c042f505a72557057094d5b17dae1df3
parent8d3273a5664e660fa18620a4857d85226632db9a (diff)
rega: move bssize
-rw-r--r--regalloc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/regalloc.c b/regalloc.c
index 683e591..a3731e3 100644
--- a/regalloc.c
+++ b/regalloc.c
@@ -558,8 +558,9 @@ buildintervals(struct rega *ra)
extern int ninstr;
struct block *blk, *last;
struct bitset **livein = alloc(ra->arena, ra->fn->nblk * sizeof *livein, 0);
+ size_t bssize = BSSIZE(ninstr);
for (int i = 0; i < ra->fn->nblk; ++i)
- livein[i] = allocz(ra->arena, BSSIZE(ninstr) * sizeof *livein[i], 0);
+ livein[i] = allocz(ra->arena, bssize * sizeof *livein[i], 0);
ra->intervals.temps = allocz(ra->arena, ninstr * sizeof *ra->intervals.temps, 0);
numberinstrs(ra->fn);
@@ -568,7 +569,6 @@ buildintervals(struct rega *ra)
do {
struct instr *ins = NULL;
struct bitset *live = livein[blk->id];
- size_t bssize = BSSIZE(ninstr);
struct block *suc = blk->s1;
// DBG("--- @%d ---\n",blk->id);
@@ -993,7 +993,6 @@ devirt(struct rega *ra, struct block *blk)
union ref *r = argref[i];
int tr;
if (r->t == RTMP) {
-
alloc = (it = &ra->intervals.temps[r->i]) && it->nrange ? &it->alloc : NULL;
if (alloc->t == ASTACK && ins->op == Omove) {
/* move [reg], [stk] -> [reg] = load [stk] */