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). Richard