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 <rguenther@suse.de> * cfghooks.c (verify_flow_info): Verify unallocated BB and edge flags are not set.
This commit is contained in:
parent
204f56aa65
commit
710c6ab4ad
@ -161,6 +161,12 @@ verify_flow_info (void)
|
|||||||
err = 1;
|
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)
|
FOR_EACH_EDGE (e, ei, bb->succs)
|
||||||
{
|
{
|
||||||
if (last_visited [e->dest->index] == bb)
|
if (last_visited [e->dest->index] == bb)
|
||||||
@ -202,6 +208,13 @@ verify_flow_info (void)
|
|||||||
err = 1;
|
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;
|
edge_checksum[e->dest->index] += (size_t) e;
|
||||||
}
|
}
|
||||||
if (n_fallthru > 1)
|
if (n_fallthru > 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user