/* Compute edge dominators. Assumes graph has been leveled and predecessors established.  */
static void find_edom(opt_state_t *opt_state, struct block *root)
/* Compute edge dominators. Assumes graph has been leveled and predecessors established.  */
static void find_edom(opt_state_t *opt_state, struct block *root)
{
	int i;
	uset x;
	struct block *b;
	x = opt_state->all_edge_sets;
	for (i = opt_state->n_edges * opt_state->edgewords; --i >= 0; )
		x[i] = 0xFFFFFFFFU;
	memset(root->et.edom, 0, opt_state->edgewords * sizeof(*(uset)0));
	memset(root->ef.edom, 0, opt_state->edgewords * sizeof(*(uset)0));
	for (i = root->level; i >= 0; --i) {
		for (b = opt_state->levels[i]; b != 0; b = b->link) {
			propedom(opt_state, &b->et);
			propedom(opt_state, &b->ef);
		}
	}
}