On Fri, Jan 10, 2014 at 9:41 PM, Jakub Jelinek <ja...@redhat.com> wrote: > Hi! > > split_data_refs_to_components used the name_expansions affine cache > through determine_offset, and since my patch uses it even more often, > but if it returns NULL, we don't free the cache and it can contain garbage > next time we perform tree_predictive_commoning_loop. > > Bootstrapped/regtested on x86_64-linux and i686-linux, committed > to trunk as obvious. No testcase for testsuite, as it is pretty > random if we ICE or not, e.g. stage1 f951 doesn't ICE, but stage2/3 did.
Uh. Is this also applicable to branches? Thanks for fixing this, Richard. > 2014-01-10 Jakub Jelinek <ja...@redhat.com> > > PR tree-optimization/59745 > * tree-predcom.c (tree_predictive_commoning_loop): Call > free_affine_expand_cache if giving up because components is NULL. > > --- gcc/tree-predcom.c.jj 2014-01-07 08:48:34.000000000 +0100 > +++ gcc/tree-predcom.c 2014-01-10 10:08:04.476340865 +0100 > @@ -2447,6 +2447,7 @@ tree_predictive_commoning_loop (struct l > if (!components) > { > free_data_refs (datarefs); > + free_affine_expand_cache (&name_expansions); > return false; > } > > > Jakub