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

Reply via email to