This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: assign_parm_setup_block handling of parallels
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: Richard Henderson <rth at redhat dot com>, gcc at gcc dot gnu dot org
- Cc: ebotcazou at libertysurf dot fr, dje at watson dot ibm dot com
- Date: Thu, 23 Dec 2004 17:45:43 -0400
- Subject: Re: assign_parm_setup_block handling of parallels
- References: <20041223202824.GA8247@redhat.com> <20041223210400.GH19547@redhat.com>
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