[LLVMdev] tablegen multiple inheritance question

Jim Grosbach grosbach at apple.com
Tue Jul 3 10:26:53 PDT 2012


Whether originally intended or not, existing targets use/exploit/abuse (depending on your perspective)  this behavior quite a bit.

-Jim

On Jul 2, 2012, at 8:59 PM, Sean Silva <silvas at purdue.edu> wrote:

> Seems to just be a byproduct of TGParser::AddSubClass() begin called
> twice. This means that TGParser::AddValue() is being called once for
> the "i" of each class, and the "last one wins".
> 
> Not sure if it is intended, but this behavior seems to more-or-less
> "make sense".
> 
> --Sean Silva
> 
> On Mon, Jul 2, 2012 at 4:55 PM, reed kotler <rkotler at mips.com> wrote:
>> class one {
>>   int i = 0;
>> }
>> 
>> class two {
>>   int i = 1;
>> }
>> 
>> class multiple: one, two;
>> 
>> This causes the first i to be ignored and the second i to replace it.
>> 
>> This is a useful property if you want to specialize classes.
>> 
>> But I don't know if it was intended to work that way or not.
>> 
>> For example, if you have an instruction class with no patterns, you can
>> merge it with one that defines the pattern and maybe other instruction
>> components by building a derived class.
>> 
>> Anybody know if this is intended behavior in tablegen?
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list