/* Do a depth first search on the flow graph, numbering the the basic blocks, and entering them into the 'blocks' array.`  */
static void number_blks_r(opt_state_t *opt_state, struct icode *ic, struct block *p)
/* Do a depth first search on the flow graph, numbering the the basic blocks, and entering them into the 'blocks' array.`  */
static void number_blks_r(opt_state_t *opt_state, struct icode *ic, struct block *p)
{
	int n;
	if (p == 0 || isMarked(ic, p))
		return;
	Mark(ic, p);
	n = opt_state->n_blocks++;
	p->id = n;
	opt_state->blocks[n] = p;
	number_blks_r(opt_state, ic, JT(p));
	number_blks_r(opt_state, ic, JF(p));
}