RFC: simd enabled functions (omp declare simd / elementals)
Jakub Jelinek
jakub@redhat.com
Mon Nov 11 19:25:00 GMT 2013
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
More information about the Gcc-patches
mailing list