Richard Guenther <rguent...@suse.de> writes:
> This patch makes us preserve loop structures from the start of tree
> loop optimizers to the end of RTL loop optimizers. It uses a new
> property, PROP_loops to indicate we want to preserve them and
> massages loop_optimizer_init/finalize to honor that.
> On the RTL side the CFG manipulation was not prepared to handle
> updating loops, so this patch fills in enough to pass bootstrap
> and regtesting. We still do too much loop fixing from cleanup_cfg
> basically because callers do not tell cleanup_cfg if they have
> modified the CFG themselves (CSE for example does in some cases).
> It was suggested to use a new flag to cleanup_cfg to do that,
> other suggestions welcome.
> Bootstrapped on x86_64-unknown-linux-gnu, testing shows some
> remaining libstdc++ errors, I am investigating them now but
> don't expect major issues.
> Comments? The patch is ontop of the early RTL pass merge.
Thanks for doing this (and for keeping the ~PROP_loops case around for
passes after rtl_loop_done -- I have a patch that uses it for SMS).