On Mon, Sep 17, 2012 at 12:52 PM, Eric Botcazou <ebotca...@adacore.com> wrote: >> Yes - now cfg_cleanup does that (and it really shouldn't be its job). That >> was the improvement I talked about - reducing the number of BBs a lot. > > OK, I removed the code and compiled the testcase of PR 43186 with --param max- > completely-peel-loop-nest-depth=32 and got back the explosion. Compilation is > instantaneous again with my patch. > >> Ah, indeed ;) Or just push struct loop of changed loops onto a stack. > > Thanks for the tip. Revised patch attached, tested on x86_64-suse-linux. > OK for the mainline? Or do you want me to remove max-completely-peel-loop- > nest-depth as well?
No, we can keep that. Ok for trunk. Thanks, Richard. > > 2012-09-17 Eric Botcazou <ebotca...@adacore.com> > > * tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove > code doing propagation from degenerate PHI nodes. > * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function. > (propagate_constants_for_unrolling): Likewise. > (tree_unroll_loops_completely): If the current loop has been unrolled > and its father isn't the entire function, propagate constants within > the new basic blocks by means of propagate_constants_for_unrolling. > > > -- > Eric Botcazou