summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-06-14 09:04:27 +0200
committerQuentin Carbonneaux <quentin@c9x.me>2022-06-14 09:11:44 +0200
commitc9f04db881e8ec0bb0beeba6274a5755c46cb534 (patch)
tree6ebdb788a5ce1336c6c4dfed9e63cb03cdf59d70
parent9a3e131cf713f8619705f906caf28c5809708ad0 (diff)
downloadroux-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.c3
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);