Displaying 4 results from an estimated 4 matches for "gizeroregist".
Did you mean:
gizeroregister
2018 Jan 02
0
Canonical way to handle zero registers?
Hi Sean,
Just to give the GlobalISel perspective on this, GlobalISel supports the declaration of a zero register in the register class like so:
def GPR32z : RegisterOperand<GPR32> {
let GIZeroRegister = WZR;
}
With that definition, the tablegen-erated ISel code will try to replace will try to replace 'G_CONSTANT s32 0' with WZR whenever the operand is specified as GPR32z.
> On 21 Dec 2017, at 21:22, Sean Silva via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> I loo...
2018 Jan 04
2
Canonical way to handle zero registers?
...rs at apple.com>
wrote:
> Hi Sean,
>
> Just to give the GlobalISel perspective on this,
Thanks for chiming in!
> GlobalISel supports the declaration of a zero register in the register
> class like so:
> def GPR32z : RegisterOperand<GPR32> {
> let GIZeroRegister = WZR;
> }
> With that definition, the tablegen-erated ISel code will try to replace
> will try to replace 'G_CONSTANT s32 0' with WZR whenever the operand is
> specified as GPR32z.
>
Is this method extensible to the case of other hardwired register values?
Tracin...
2018 Jan 04
0
Canonical way to handle zero registers?
...om>> wrote:
> Hi Sean,
>
> Just to give the GlobalISel perspective on this,
>
> Thanks for chiming in!
>
> GlobalISel supports the declaration of a zero register in the register class like so:
> def GPR32z : RegisterOperand<GPR32> {
> let GIZeroRegister = WZR;
> }
> With that definition, the tablegen-erated ISel code will try to replace will try to replace 'G_CONSTANT s32 0' with WZR whenever the operand is specified as GPR32z.
>
>
> Is this method extensible to the case of other hardwired register values? Tracin...
2017 Dec 22
4
Canonical way to handle zero registers?
I looked around the codebase and didn't see anything that obviously looked
like the natural place to turn constant zero immediates into zero-registers
(i.e. registers that always return zero when read). Right now we are
expanding them in ISelLowering::LowerOperation but that seems too early.
The specific issue I'm hitting is that we have a register that reads as -1
and so when we replace