This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: simd enabled functions (omp declare simd / elementals)
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Aldy Hernandez <aldyh at redhat dot com>, Richard Henderson <rth at redhat dot com>, Richard Biener <richard dot guenther at gmail dot com>, Jan Hubicka <jh at suse dot cz>, gcc-patches <gcc-patches at gcc dot gnu dot org>, "Iyer, Balaji V" <balaji dot v dot iyer at intel dot com>
- Date: Mon, 11 Nov 2013 19:30:48 +0100
- Subject: Re: RFC: simd enabled functions (omp declare simd / elementals)
- Authentication-results: sourceware.org; auth=none
- References: <52731A4D dot 6020402 at redhat dot com> <20131107160913 dot GE3572 at virgil dot suse> <527D23FB dot 8000206 at redhat dot com> <20131111175739 dot GB10643 at virgil dot suse>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Mon, Nov 11, 2013 at 06:57:39PM +0100, Martin Jambor wrote:
> > --- a/gcc/ipa-prop.h
> > +++ b/gcc/ipa-prop.h
> > @@ -609,6 +609,31 @@ extern alloc_pool ipcp_values_pool;
> > extern alloc_pool ipcp_sources_pool;
> > extern alloc_pool ipcp_agg_lattice_pool;
> >
> > +/* Operation to be performed for the parameter in ipa_parm_adjustment
> > + below. */
> > +enum ipa_parm_op {
> > + IPA_PARM_OP_NONE,
> > +
> > + /* This describes a brand new parameter.
> > +
> > + For new parameters, base_index must be >= the number of
> > + DECL_ARGUMENTS in the function. That is, new arguments will be
> > + the last arguments in the adjusted function.
>
> ...where this requirement comes from. I would think that base_index
> would be completely ignored for the new parameters, is it not?
Ouch, I'll actually need to insert new parameters in the middle, because say
for SSE2
#pragma omp declare simd simdlen (4) inbranch
int foo (int x, long long y, int z);
is passed as
vector(4) int foo (vector(4) int x, vector(2) long long y,
vector(2) long long y2nd, vector(4) int z,
vector(4) int mask);
and thus I need to modify the first and second argument, then
insert a new argument after second, then modify third argument and add
another argument at the end.
Jakub