assign_parm_setup_block handling of parallels

Aldy Hernandez aldyh@redhat.com
Thu Dec 23 22:09:00 GMT 2004


On Thu, Dec 23, 2004 at 01:04:00PM -0800, Richard Henderson wrote:
> On Thu, Dec 23, 2004 at 04:28:24PM -0400, Aldy Hernandez wrote:
> >   /* If we've a non-block object that's nevertheless passed in parts,
> >      reconstitute it in register operations rather than on the stack.  */
> >   if (GET_CODE (entry_parm) == PARALLEL
> >       && data->nominal_mode != BLKmode
> >       && XVECLEN (entry_parm, 0) > 1		<-- BOO HISS!
> >       && use_register_for_decl (parm))
> > 
> > Is this vector length check here for a particular reason?
> 
> Yes, there was a fight about this particular optimization.  You'll
> have to search the archives for details, because my memory is failing.

The thread starts here:

http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00031.html

In my limited understanding of the problem I think we can allow the
optimization for one-member parallels iff the hard register will span
more than one register.  I think this will satisfy both PPC64 and
Sparc64.

Do you folks agree?

Aldy



More information about the Gcc mailing list