On Fri, Mar 16, 2018 at 11:53 AM, Dylan Baker <dy...@pnwbakers.com> wrote:

> Quoting Jason Ekstrand (2018-03-16 11:38:47)
> > On Fri, Mar 16, 2018 at 11:28 AM, Dylan Baker <dy...@pnwbakers.com>
> wrote:
> >
> >     intr_opcodes = {
> >         'nop': Intrinsic('nop', flags=[CAN_ELIMINATE]),
> >         ...
> >     }
> >
> >     I prefer this since each dictionary is clearly created without a
> function
> >     obscuring what's actually going on. If you dislike having to repeat
> the
> >     name you
> >     could even do something like:
> >     intr_opcodes = [
> >         'nop': Intrinsic('nop', flags=[CAN_ELIMINATE]),
> >         ...
> >     ]
> >     intr_opcodes = {i.name: i for i in intr_opcodes}
> >
> >
> > I'm not sure what I think about this.  On the one hand, having the
> dictionary
> > explicitly declared is nice.  On the other hand, in nir_opcodes.py we
> have a
> > bunch of other helper functions we declare along the way to help with
> specific
> > kinds of opcodes.  It's not as practical to do this if everything is
> inside of
> > a dictionary declaration.
>
> Why not?
>
> def make_op(name, *args):
>     return Intrinsic(name, foo='bar', *args)
>
> intr_opcodes = [
>     make_op('nop', ...),
> ]
>

Because it's nice to keep the definition of the wrapper close to where it's
used.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to