aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir/regalloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ir/regalloc.c')
-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: