This is the mail archive of the
mailing list for the GCC project.
Re: Better info for combine results in worse code generated
- From: Alan Modra <amodra at gmail dot com>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 3 Jun 2015 10:23:57 +0930
- Subject: Re: Better info for combine results in worse code generated
- Authentication-results: sourceware.org; auth=none
- References: <20150529031120 dot GN14752 at bubble dot grove dot modra dot org> <20150529125838 dot GA17397 at gate dot crashing dot org> <20150529135008 dot GO14752 at bubble dot grove dot modra dot org> <20150529150004 dot GA31466 at gate dot crashing dot org> <20150530011727 dot GR14752 at bubble dot grove dot modra dot org> <20150530130220 dot GA22014 at gate dot crashing dot org> <20150601020318 dot GS14752 at bubble dot grove dot modra dot org> <20150601133905 dot GA15905 at gate dot crashing dot org> <20150601231937 dot GU14752 at bubble dot grove dot modra dot org> <20150602162809 dot GC15905 at gate dot crashing dot org>
On Tue, Jun 02, 2015 at 11:28:09AM -0500, Segher Boessenkool wrote:
> On Tue, Jun 02, 2015 at 08:49:37AM +0930, Alan Modra wrote:
> > but and64_2_operand doesn't include all of and_operand!
> Maybe I'm slow today, but I don't see it? Do you have an example?
I need to get new glasses. That's the best excuse I can come up with
at short notice. :) mask64_2_operand, used by and64_2_operand,
does indeed cover all of mask_operand and mask64_operand. Even so,
the predicate deserves to die.
> > > > get rid of WORD_REGISTER_OPERATIONS,
> > >
> > > rs6000 should not define it. What e.g. does it mean for mullw? Or,
> > > worse, mulhw? Pretty much anything with "w" in its name is problematic.
> > In many places WORD_REGISTER_OPERATIONS is used, it is saying "don't
> > trust the high bits". At the moment we definitely do need it defined!
> I don't see that either; do you have a pointer for me?
The first occurrence in combine.c looks like such a place to me. Also
the first one in rtlanal.c:nonzero_bits1.
Australia Development Lab, IBM