This is the mail archive of the gcc-patches@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: RFC: simd enabled functions (omp declare simd / elementals)


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


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