On Wed, Jun 13, 2012 at 10:09 AM, Alexandre Oliva <aol...@redhat.com> wrote: > On Apr 9, 2012, Alexandre Oliva <aol...@redhat.com> wrote: > >> On Jun 4, 2011, Alexandre Oliva <aol...@redhat.com> wrote: > >>> On Oct 13, 2009, Alexandre Oliva <aol...@redhat.com> wrote: >>>> On Jun 1, 2009, Alexandre Oliva <aol...@redhat.com> wrote: >>>>> A long time ago, when variable tracking at assignments was just a >>>>> distant dream, we ran into one of the first contentious points, which >>>>> had to do with coalescing SSA names on copyrename. > >>>>> On the one hand, coalescing unrelated SSA names made for better code (at >>>>> least in theory) but poorer debug information; on the other hand, >>>>> refraining from coalescing them exploded compile-time memory use. > >>>>> We currently implement a trade-off by which variables inlined from other >>>>> functions can be coalesced, so as to save compile-time memory, reduce >>>>> abstraction penalties and retain debug information for out-of-line >>>>> functions. > >>>>> The patch below (ping) implements two other possibilities: refraining >>>>> from coalescing even inlined SSA names, which might enable better debug >>>>> information to be generated, and enabling coalescing of all related >>>>> variables, for better code at the expense of debug information. > >>>>> VTA doesn't really care which of the 3 possibilities is used, it works >>>>> equally well with all of them. > >>>> On Jun 1, 2009, Alexandre Oliva <aol...@redhat.com> also wrote: > >>>>> And the patch below changes the default so that we can optimize more. > >>>> This patch combines the two patches described above, now that VTA is >>>> enabled by default. > >>> This is an updated version of the patch, adjusting the testcases that >>> didn't expect this kind of variable coalescing. > >> Regstrapped on x86_64-linux-gnu and i686-linux-gnu. Ok?
Ok. Thanks, Richard. > >> for gcc/ChangeLog >> from Alexandre Oliva <aol...@redhat.com> > >> * common.opt (ftree-coalesce-inlined-vars): New. >> (ftree-coalesce-vars): New. >> * doc/invoke.texi: Document them. >> * tree-ssa-copyrename.c (copy_rename_partition_coalesce): >> Implement them. > >> for gcc/testsuite/ChangeLog >> from Alexandre Oliva <aol...@redhat.com> > >> * g++.dg/tree-ssa/ivopts-2.C: Adjust for coalescing. >> * gcc.dg/tree-ssa/forwprop-11.c: Likewise. >> * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. > >> Ping? (Updated with improved docs; should the options be renamed to >> -ftree-copyrename-* to match the option that covers the entire pass?) > > Ping? http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00412.html > > -- > Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ > You must be the change you wish to see in the world. -- Gandhi > Be Free! -- http://FSFLA.org/ FSF Latin America board member > Free Software Evangelist Red Hat Brazil Compiler Engineer