From ecfdac4f00a81dd57ffcbe11142e8619b1f2ee67 Mon Sep 17 00:00:00 2001 From: Roland Paterson-Jones Date: Tue, 19 Nov 2024 11:11:30 +0200 Subject: [PATCH] Simplify fillpreds() Now that b->pred is a vector we do can remove the counting pass. --- cfg.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/cfg.c b/cfg.c index fe0468a..631c356 100644 --- a/cfg.c +++ b/cfg.c @@ -45,12 +45,12 @@ edgedel(Blk *bs, Blk **pbd) static void addpred(Blk *bp, Blk *bc) { + ++bc->npred; if (bc->pred) vgrow(&bc->pred, bc->npred); else bc->pred = vnew(bc->npred, sizeof bc->pred[0], PFn); - assert(bc->visit < bc->npred); - bc->pred[bc->visit++] = bp; + bc->pred[bc->npred-1] = bp; } /* fill predecessors information in blocks */ @@ -59,16 +59,8 @@ fillpreds(Fn *f) { Blk *b; - for (b=f->start; b; b=b->link) { + for (b=f->start; b; b=b->link) b->npred = 0; - b->visit = 0; - } - for (b=f->start; b; b=b->link) { - if (b->s1) - b->s1->npred++; - if (b->s2 && b->s2 != b->s1) - b->s2->npred++; - } for (b=f->start; b; b=b->link) { if (b->s1) addpred(b, b->s1);