[LLVMdev] INSERT_SUBREG node.
sanjiv gupta
sanjiv.gupta at microchip.com
Mon Oct 20 07:10:32 PDT 2008
On Sun, 2008-10-19 at 23:18 -0700, Evan Cheng wrote:
>
> On Oct 18, 2008, at 7:01 AM, sanjiv gupta wrote:
>
> > On Thu, 2008-10-16 at 08:55 -0700, Evan Cheng wrote:
> > > On Oct 15, 2008, at 11:21 AM, sanjiv gupta wrote:
> > >
> > > > > >
> > > > >
> > > > > Ok. The AX / AH super-reg and sub-reg relationship is not
> > > > > defined. In
> > > > > general x86 is not making good use of the high 8-bit
> > > > > sub-registers.
> > > > > We
> > > > > are leaving some performance on the table. We'll probably fix
> > > > > it one
> > > > > day. However, this doesn't apply to your target, right? There
> > > > > is
> > > > > nothing preventing you from specifying the sub-registers and
> > > > > making
> > > > > use of insert_subreg, no?
> > > > >
> > > > > Evan
> > > > >
> > > > it is, though we have a workaround.
> > > >
> > > > We have 16-bit registers class and want to set both the lo and
> > > > high
> > > > parts using INSERT_SUBREG.
> > > >
> > > > The workaround is to declare the same SubRegClass twice while
> > > > declaring
> > > > the SuperRegisterClass. i.e.
> > > >
> > > > def FSR16: RegisterClass <"PIC16", [i16], 8, [FSR0, FSR1]> {
> > > > let SubRegClassList = [FSR8, FSR8]; // HERE.
> > > > }
> > >
> > > This is a bug, probably in tablegen. Unfortunately I don't have
> > > the
> > > time to fix it. But please file a bug about this. Hopefully
> > > someone
> > > will fix it soon.
> > >
> > > Thanks,
> > >
> > > Evan
> > >
> >
> > PR2916 filed.
> > Though I did not quite understand why this could be a tablegen bug?
>
>
> Based on your comments. :-) It should be possible to specify two FSR0
> sub-registers (FSR0L, FSR0H of the same register class FSR8) with the
> workaround you described:
>
>
> def FSR16: RegisterClass <"PIC16", [i16], 8, [FSR0, FSR1]> {
> let SubRegClassList = [FSR8, FSR8]; // HERE.
> }
>
It is currently possible.
- Sanjiv
>
> Evan
>
> >
> >
> > - Sanjiv
> >
> >
> > _______________________________________________
> > 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