On Wed, Oct 5, 2011 at 10:48 PM, Bernd Schmidt <[email protected]> wrote:
> Bootstrapped and tested on i686-linux. Ok?
> +/* Return true if BB has any active insns. */
> +static bool
> +bb_active_p (basic_block bb)
> +{
> + rtx label;
> +
> + /* Test whether there are active instructions in the last block. */
> + label = BB_END (bb);
> + while (label && !LABEL_P (label))
> + {
> + if (active_insn_p (label))
> + break;
> + label = PREV_INSN (label);
> + }
> + return BB_HEAD (bb) != label || !LABEL_P (label);
> +}
This assumes that all basic blocks start with a label, I don't think
that's true. It seems better to use FOR_BB_INSNS_REVERSE here.
Ciao!
Steven