search for: vreg_gpr4

Displaying 5 results from an estimated 5 matches for "vreg_gpr4".

Did you mean: vreg_gpr0
2013 Mar 25
2
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
...olve the problem. 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_...
2013 Mar 25
0
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
...xample 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_...
2013 Mar 26
2
[LLVMdev] [PATCH] RegScavenger::scavengeRegister
...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 > > > >...
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