This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PR52001] too many cse reverse equiv exprs (take2)


On Feb 13, 2012, Jakub Jelinek <jakub@redhat.com> wrote:

> I'm not convinced you want the
>> +  /* Keep VALUE equivalences around.  */
>> +  for (l = v->locs; l; l = l->next)
>> +    if (GET_CODE (l->loc) == VALUE)
>> +      return true;
> hunk in invariant_p,

Yeah, maybe âinvariant_pâ is a misnomer.  The thinking is that, if we
preserve a value, we preserve other values based on it, and we do
preserve values with equivalences to avoid having to carry the
equivalences in the var-tracking dataflow sets.

> Otherwise the cselib.c changes look ok to me, but I don't understand
> why are you removing the var-tracking.c loop.

I thought completeness called for retaining those equivalences, but now
I see that, since they're always going to be computed values, rather
than locations, the constant value provides sufficient and better
information for completeness, rendering them irrelevant indeed.  I'll
put that hunk back in and retest.

Thanks,

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]