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? > 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