diff options
author | Quentin Carbonneaux <quentin@c9x.me> | 2022-06-14 09:04:27 +0200 |
---|---|---|
committer | Quentin Carbonneaux <quentin@c9x.me> | 2022-06-14 09:11:44 +0200 |
commit | c9f04db881e8ec0bb0beeba6274a5755c46cb534 (patch) | |
tree | 6ebdb788a5ce1336c6c4dfed9e63cb03cdf59d70 | |
parent | 9a3e131cf713f8619705f906caf28c5809708ad0 (diff) | |
download | roux-c9f04db881e8ec0bb0beeba6274a5755c46cb534.tar.gz |
refine assertion in liveness analysis
We were redundantly checking cardinality in a way that prevented fp regs from ever being globally live. We now check that the live regs after a return are exactly the globally live ones.
-rw-r--r-- | live.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/live.c b/live.c index a1b4219..68f48b0 100644 --- a/live.c +++ b/live.c @@ -74,8 +74,7 @@ Again: nlv[KBASE(f->tmp[t].cls)]++; if (rtype(b->jmp.arg) == RCall) { assert((int)bscount(b->in) == T.nrglob && - nlv[0] == T.nrglob && - nlv[1] == 0); + b->in->t[0] == T.rglob); b->in->t[0] |= T.retregs(b->jmp.arg, nlv); } else bset(b->jmp.arg, b, nlv, f->tmp); |