Displaying 5 results from an estimated 5 matches for "vreg_gpr5".
Did you mean:
vreg_gpr0
2013 Mar 25
2
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
...m.
Using the following example where live ranges of accumulators $vreg_acc0
and $vreg_acc1 conflict,
MULT $vreg_acc0, $vreg_gpr0, $vreg_gpr1
MULT $vreg_acc1, $vreg_gpr2, $vreg_gpr3
(consumer of $vreg_acc1)
(consumer of $vreg_acc0)
if the register can create new virtual registers $vreg_gpr4 and $vreg_gpr5,
I think spilling can be avoided:
MULT $vreg_acc0, $vreg_gpr0, $vreg_gpr1
copy $vreg_gpr4, $vreg_acc0:lo // spill lo
copy $vreg_gpr5, $vreg_acc0:hi // spill hi
MULT $vreg_acc1, $vreg_gpr2, $vreg_gpr3
(consumer of $vreg_acc1)
copy $vreg_acc0:lo, $vreg_gpr4 // restore lo
copy $vreg_acc0:hi, $vreg_...
2013 Mar 25
0
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
...ve ranges of accumulators $vreg_acc0 and $vreg_acc1 conflict,
>
> MULT $vreg_acc0, $vreg_gpr0, $vreg_gpr1
> MULT $vreg_acc1, $vreg_gpr2, $vreg_gpr3
>
> (consumer of $vreg_acc1)
> (consumer of $vreg_acc0)
>
> if the register can create new virtual registers $vreg_gpr4 and $vreg_gpr5, I think spilling can be avoided:
>
>
> MULT $vreg_acc0, $vreg_gpr0, $vreg_gpr1
> copy $vreg_gpr4, $vreg_acc0:lo // spill lo
> copy $vreg_gpr5, $vreg_acc0:hi // spill hi
> MULT $vreg_acc1, $vreg_gpr2, $vreg_gpr3
>
> (consumer of $vreg_acc1)
> copy $vreg_acc0:lo, $vreg_...
2013 Mar 26
2
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
...vreg_acc1 conflict,
> >
> > MULT $vreg_acc0, $vreg_gpr0, $vreg_gpr1
> > MULT $vreg_acc1, $vreg_gpr2, $vreg_gpr3
> >
> > (consumer of $vreg_acc1)
> > (consumer of $vreg_acc0)
> >
> > if the register can create new virtual registers $vreg_gpr4 and
> $vreg_gpr5, I think spilling can be avoided:
> >
> >
> > MULT $vreg_acc0, $vreg_gpr0, $vreg_gpr1
> > copy $vreg_gpr4, $vreg_acc0:lo // spill lo
> > copy $vreg_gpr5, $vreg_acc0:hi // spill hi
> > MULT $vreg_acc1, $vreg_gpr2, $vreg_gpr3
> >
> > (consumer of $vreg_...
2013 Mar 25
0
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
On Mar 25, 2013, at 1:41 PM, Akira Hatanaka <ahatanak at gmail.com> wrote:
> Hi Jakob,
>
> I believe Hal is trying to enable register scavenger to find two (or more) registers that can be used as temporaries.
>
> One problem I see with this approach is that, if you use register scavenger during PEI, you will have to pessimistically set aside two emergency spill slots before
2013 Mar 25
3
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
Hi Jakob,
I believe Hal is trying to enable register scavenger to find two (or more)
registers that can be used as temporaries.
One problem I see with this approach is that, if you use register scavenger
during PEI, you will have to pessimistically set aside two emergency spill
slots before you call scavengeRegister, even if it turns out you only need
one. Having an extra stack slot might not be