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 <rguenther@suse.de>
* cfghooks.c (verify_flow_info): Verify unallocated BB and
edge flags are not set.
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)
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)