From: Richard Biener Date: Fri, 24 Sep 2021 08:13:45 +0000 (+0200) Subject: Verify unallocated edge/BB flags are clear X-Git-Tag: upstream/12.2.0~4819 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=710c6ab4ad502cddc8bdf82c95f580fa94fbf9fb;p=platform%2Fupstream%2Fgcc.git Verify unallocated edge/BB flags are clear This adds verification that unused auto_{edge,bb}_flag are not remaining set but correctly cleared by consumers. The intent is that those flags can be cheaply used on a smaller IL region and thus afterwards clearing can be restricted to the same small region as well. 2021-09-24 Richard Biener * cfghooks.c (verify_flow_info): Verify unallocated BB and edge flags are not set. --- diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c index 50b9b17..6446e16 100644 --- a/gcc/cfghooks.c +++ b/gcc/cfghooks.c @@ -161,6 +161,12 @@ verify_flow_info (void) err = 1; } + if (bb->flags & ~cfun->cfg->bb_flags_allocated) + { + error ("verify_flow_info: unallocated flag set on BB %d", bb->index); + err = 1; + } + FOR_EACH_EDGE (e, ei, bb->succs) { if (last_visited [e->dest->index] == bb) @@ -202,6 +208,13 @@ verify_flow_info (void) err = 1; } + if (e->flags & ~cfun->cfg->edge_flags_allocated) + { + error ("verify_flow_info: unallocated edge flag set on %d -> %d", + e->src->index, e->dest->index); + err = 1; + } + edge_checksum[e->dest->index] += (size_t) e; } if (n_fallthru > 1)