Displaying 4 results from an estimated 4 matches for "vtrc".
Did you mean:
trc
2015 Aug 25
2
[LLVMdev] TableGen Register Class not matching for MI in 3.6
...egisterClass *RC =
TRI->getAllocatableClass(TII->getRegClass(II, i, TRI, *MF));
That returns GPRBaseRegs for RC, but it then decides to constrain it based
on type:
if (i < NumResults && TLI->isTypeLegal(Node->getSimpleValueType(i))) {
const TargetRegisterClass *VTRC =
TLI->getRegClassFor(Node->getSimpleValueType(i));
errs()<<"CVR VTRC: "<<VTRC->getID()<<"\n";
if (RC)
VTRC = TRI->getCommonSubClass(RC, VTRC);
if (VTRC)
RC = VTRC;
}
VTRC = GPRRegs. Then RC=VTRC makes...
2015 Aug 25
2
[LLVMdev] TableGen Register Class not matching for MI in 3.6
...->getAllocatableClass(TII->getRegClass(II, i, TRI, *MF));
>
> That returns GPRBaseRegs for RC, but it then decides to constrain it based
> on type:
>
> if (i < NumResults && TLI->isTypeLegal(Node->getSimpleValueType(i))) {
> const TargetRegisterClass *VTRC =
> TLI->getRegClassFor(Node->getSimpleValueType(i));
> errs()<<"CVR VTRC: "<<VTRC->getID()<<"\n";
> if (RC)
> VTRC = TRI->getCommonSubClass(RC, VTRC);
> if (VTRC)
> RC = VTRC;
> }
&...
2015 Aug 25
2
[LLVMdev] TableGen Register Class not matching for MI in 3.6
...(TII->getRegClass(II, i, TRI, *MF));
>>
>> That returns GPRBaseRegs for RC, but it then decides to constrain it
>> based on type:
>>
>> if (i < NumResults && TLI->isTypeLegal(Node->getSimpleValueType(i))) {
>> const TargetRegisterClass *VTRC =
>> TLI->getRegClassFor(Node->getSimpleValueType(i));
>> errs()<<"CVR VTRC: "<<VTRC->getID()<<"\n";
>> if (RC)
>> VTRC = TRI->getCommonSubClass(RC, VTRC);
>> if (VTRC)
>>...
2015 Aug 25
2
[LLVMdev] TableGen Register Class not matching for MI in 3.6
1. MOV16Copy_IMM_REG is the instruction matched, sorry. AD is the
multiclass. The IMM in my case is a global. So you can see that
GPRBaseRegs, GPRBaseRegs sets the registerclass for both the src and dst
operands, in this case (MOV16Copy_IMM_REG) it's the dst.
2. Yes I agree, it most likely would.
Honestly, this comes across like a bug, or unintended feature. It's adding
an extra COPY to