[Mesa-dev] [RFC 7/9] nir/nir: Use a linked list instead of a has set for use/def sets

Connor Abbott cwabbott0 at gmail.com
Mon Apr 27 14:37:16 PDT 2015


On Mon, Apr 27, 2015 at 5:25 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> On Mon, Apr 27, 2015 at 1:35 PM, Connor Abbott <cwabbott0 at gmail.com> wrote:
>> On Fri, Apr 24, 2015 at 7:32 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
>>> +struct nir_if;
>>> +
>>>  typedef struct nir_src {
>>>     union {
>>> +      nir_instr *parent_instr;
>>> +      struct nir_if *parent_if;
>>> +   };
>>
>> There's something I'm not quite understanding about this... how are we
>> supposed to know which of parent_instr and parent_if are valid? If I
>> walk over all the sources for a given SSA def or register, how am I
>> supposed to know if it's part of an if-condition or an instruction? I
>> would think that you would need a boolean here or have parent_instr
>> and parent_if not be in a union.
>
> We do the same thing we did with the sets before.  We have separate
> uses and if_uses sets.  If it's in if_uses, you use the if.  If it's
> in uses, it's an instr.  We could put something in the source but that
> seems like it'll make for even more mess.
> --Jason

D'oh... right. That makes sense.

Connor


More information about the mesa-dev mailing list