On Thu, Nov 7, 2013 at 7:55 PM, Jeff Law <l...@redhat.com> wrote: > On 11/07/13 04:50, Ilya Enkovich wrote: >> >> Hi, >> >> Here is an updated patch version. > > I think this needs to hold until we have a consensus on what the parameter > passing looks like for bounded pointers.
I still think the best thing to do on GIMPLE is arg_2 = __builtin_ia32_bnd_arg (arg_1(D)); foo (arg_2); that is, make the parameter an implicit pair of {value, bound} where the bound is determined by the value going through a bound association builtin. No extra explicit argument to the calls so arguments match the fndecl and fntype. All the complexity is defered to the expander which can trivially lookup bound arguments via the SSA def (I suppose it does that anyway now for getting at the explicit bound argument now). As far as I can see (well, think), all currently passed bound arguments are the return value of such builtin already. Richard. > Jeff