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: Vector shuffling


On Wed, 31 Aug 2011, Artem Shinkarov wrote:

> On Wed, Aug 31, 2011 at 4:38 PM, Joseph S. Myers
> <joseph@codesourcery.com> wrote:
> > On Wed, 31 Aug 2011, Artem Shinkarov wrote:
> >
> >> 1) Helper function for the pseudo-builtins.
> >> In my case the builtin can have 2 or 3 arguments, and I think that I
> >> expressed that in a pretty much short way without any helper function.
> >> Am I missing something?
> >
> > The point is to refactor what's common between this and other
> > pseudo-builtins, not to have two pseudo-builtins doing things one way and
> > one doing them another way....
> 
> Joseph, I don't mind adjusting, just look into the patch and tell me
> if the way it is done at the moment is the right way to do it. I don't
> see a good reason to write a helper function the way you describe,
> because the number of operations we do there is very small. However,
> if you think that this is a right way to go, I can put the statements
> I am using right now to handle arguments of RID_BUILTIN_SHUFFLE in a
> helper function. So is there anything missing?

The common parts are I think:

* Parse open parenthesis.  If there isn't one, a parse error is OK (no 
worse than at present) but "cannot take address of %<__builtin_whatever%>" 
would be better.

* Parse expression list.

* Parse close parenthesis (if not found, parse error).

* Check number of arguments against the list of permitted numbers of 
arguments for this pseudo-builtin, and give an error if the number is 
wrong.

-- 
Joseph S. Myers
joseph@codesourcery.com


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