This is the mail archive of the gcc@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: Better info for combine results in worse code generated


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.

-- 
Alan Modra
Australia Development Lab, IBM


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