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