[LLVMdev] bug in tablegen?
reed kotler
rkotler at mips.com
Tue Jul 3 14:29:16 PDT 2012
Not sure what you mean.
I.OutOperandList == (outs CPU16Regs:$rx)
I.InOperandList == (ins CPU16Regs:$ry, CPU16Regs:$rz)
On 07/02/2012 09:26 PM, Sean Silva wrote:
> I think you're missing the template args for `FRRR16_ins` in the first
> argument. The switch in TGParser::ParseType() doesn't cover the case
> of types with template args though... which makes me wonder what is
> going on inside of TableGen to make `I.f` and `I.AsmString` valid...
>
> --Sean Silva
>
> On Mon, Jul 2, 2012 at 8:07 PM, reed kotler<rkotler at mips.com> wrote:
>> I've filed the following bug. Maybe I'm doing something stupid here or
>> maybe someone knows of a workaround.
>>
>> The following fragment from mips16 (not yet checked into main source).
>>
>> The problem is that I should be able to pass parameters:
>> I.OutOperandList, I.InOperandList
>>
>> But instead, I must back substitute what I know the values of these are.
>> (outs CPU16Regs:$rx), (ins CPU16Regs:$ry, CPU16Regs:$rz)
>>
>>
>> class FRRR16_ins<bits<2> _f, string asmstr, list<dag> pattern,
>> InstrItinClass itin> :
>> FRRR16<_f, (outs CPU16Regs:$rz), (ins CPU16Regs:$rx,
>> CPU16Regs:$ry),
>> !strconcat(asmstr, "\t$rz, $rx, $ry"),
>> pattern, itin>;
>>
>> class ArithLogicR16<FRRR16_ins I, SDNode OpNode, bit isComm = 0>:
>> FRRR16<I.f, (outs CPU16Regs:$rx), (ins CPU16Regs:$ry, CPU16Regs:$rz),
>> // tablegen bug: should be I.OutOperandList, I.InOperandList,
>> I.AsmString,
>> [(set CPU16Regs:$rx, (OpNode CPU16Regs:$ry, CPU16Regs:$rz))],
>> I.Itinerary> {
>> let isCommutable = isComm;
>> let isReMaterializable = 1;
>> }
>> _______________________________________________
>> 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