aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-12-21 11:16:20 +0100
committerlemon <lsof@mailbox.org>2025-12-21 11:16:20 +0100
commitdd21392ea30844c36e964cab62c0145584f92086 (patch)
tree42fffc07ef71ce7e437f21cd4ffee0ccfbd2bf3a /ir
parent497289eb02927c75f6e77bba052bec2a4589c227 (diff)
rega: fix 3ff0bfcb
Diffstat (limited to 'ir')
-rw-r--r--ir/regalloc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/ir/regalloc.c b/ir/regalloc.c
index c1d925d..c8893b7 100644
--- a/ir/regalloc.c
+++ b/ir/regalloc.c
@@ -1221,11 +1221,8 @@ fini(struct rega *ra)
if (p == blk || (p->s2 && !blk->s1))
delet = 0;
}
- startbbvisit();
for (int i = 0; i < blk->npred; ++i) {
struct block *p = blkpred(blk, i);
- if (wasvisited(p)) break;
- markvisited(p);
if (!p->s2 && !blk->s1) {
/* simplify:
*
@@ -1239,7 +1236,7 @@ fini(struct rega *ra)
assert(p->s1 == blk);
p->jmp.t = blk->jmp.t;
p->s1 = NULL;
- } else if (blk->s1) {
+ } else if (blk->s1 && blk->s1 != blk) {
/* simplify:
*
* @p: