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

Reply via email to