On Tue, Sep 04, 2012 at 11:27:47AM +0200, Richard Guenther wrote: > On Mon, Sep 3, 2012 at 5:52 PM, Jan Hubicka <hubi...@ucw.cz> wrote: > >> On Fri, Aug 31, 2012 at 7:24 PM, Martin Jambor <mjam...@suse.cz> wrote: > >> > Hi, > >> > > >> > On Thu, Aug 30, 2012 at 05:11:35PM +0200, Martin Jambor wrote: > >> >> this is a new version of the patch which makes ipa analysis produce > >> >> predicates for PHI node results, at least at the bottom of the > >> >> simplest diamond and semi-diamond CFG subgraphs. This time I also > >> >> analyze the conditions again rather than extracting information from > >> >> CFG edges, which means I can reason about substantially more PHI > >> >> nodes. > >> >> > >> >> This patch makes us produce loop bounds hint for the pr48636.f90 > >> >> testcase. > >> >> > >> >> Bootstrapped and tested on x86_64-linux. OK for trunk? > >> >> > >> >> Thanks, > >> >> > >> >> Martin > >> >> > >> >> > >> >> 2012-08-29 Martin Jambor <mjam...@suse.cz> > >> >> > >> >> * ipa-inline-analysis.c (phi_result_unknown_predicate): New > >> >> function. > >> >> (predicate_for_phi_result): Likewise. > >> >> (estimate_function_body_sizes): Use the above two functions. > >> >> > >> > > >> > This patch, on top of the one doing loop calculations almost always, > >> > introduces a number of testsuite failures which somehow I had not > >> > caught during my testing. The problem is that either > >> > calculate_dominance_info or loop_optimizer_init introduce new SSA > >> > names for which there is no index in nonconstant_names which is > >> > allocated before the dominance and loop computations. I'm currently > >> > bootstrapping and testing the following fix which simply allocates the > >> > vector after doing the two computations. If it passes I will commit > >> > it straight away so that the regression is fixed before I leave for > >> > the weekend, I hope it's obvious enough for that. > >> > > >> > On the other hand, it would really be better if we did not change > >> > function bodies during IPA summary generation phase... > >> > >> Um ... we shouldn't do this. Can you track down where it happens? I > >> suppose it might come from CFG manipulations loop_optimizer_init > >> performs when not passing AVOID_CFG_MODIFICATIONS. > > > > I bet it come from loop noromalization :) (i.e. loop closed form > > or preheader construction both needs new SSA names.) > > I think it would be best to make pass manager to handle this and make > > loop normalization to happen once before all SSA IPA analysis > > And compute loops as well.
OK, this is now PR 54477 so that we don't forget. Thanks, Martin