diff options
| author | 2025-12-21 11:16:20 +0100 | |
|---|---|---|
| committer | 2025-12-21 11:16:20 +0100 | |
| commit | dd21392ea30844c36e964cab62c0145584f92086 (patch) | |
| tree | 42fffc07ef71ce7e437f21cd4ffee0ccfbd2bf3a /ir/regalloc.c | |
| parent | 497289eb02927c75f6e77bba052bec2a4589c227 (diff) | |
rega: fix 3ff0bfcb
Diffstat (limited to 'ir/regalloc.c')
| -rw-r--r-- | ir/regalloc.c | 5 |
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: |