Displaying 9 results from an estimated 9 matches for "savescavengerregist".
Did you mean:
savescavengerregister
2012 Nov 11
2
[LLVMdev] register scavenger
You mean when I "explicity" use it by calling methods of register scavenger?
Right now I'm just allocating virtual registers that will be resolved by
the use of register scavenger and I'm also providing an override of the
virtual method saveScavengerRegister. In Mips16, I have an extra mips 32
register (not usually very useful since it can only be used
in a move instruction) I can use instead of having to go to the stack
for an emergency slot.
On 11/10/2012 04:39 PM, Arnold Schwaighofer wrote:
> CC the list.
>
> On Sat, Nov 10, 2012 at 6:...
2012 Nov 11
0
[LLVMdev] register scavenger
...register and there is no way to add another register
or large constant to it. You have to move SP to a mips 16 register and
then add the value of another register which has already been loaded
with a large constant. So that means that two registers are needed.
I'm wondering if my version of saveScavengerRegister uses say T0 and T1
(mips32 registers) for emergency spill slots will work. The usual inline
code which goes to the emergency slot only
allows for one emergency spill slot. But my routine would only fail if
more than two emergency slots were needed but maybe other things would
be messed up.
I...
2012 Nov 10
5
[LLVMdev] register scavenger
...ency slot again and not be able to.
Instead it tries to restore it only right before register it is freeing up.
Maybe I'm misunderstanding this code.
// If the target knows how to save/restore the register, let it do so;
// otherwise, use the emergency stack spill slot.
if (!TRI->saveScavengerRegister(*MBB, I, UseMI, RC, SReg)) {
// Spill the scavenged register before I.
assert(ScavengingFrameIndex >= 0 &&
"Cannot scavenge register without an emergency spill slot!");
TII->storeRegToStackSlot(*MBB, I, SReg, true, ScavengingFrameIndex,
RC,TRI);...
2015 Jan 29
0
[LLVMdev] creating a vreg in eliminateFrameIndex()
...com/llvm-mirror/llvm/blob/master/lib/Target/ARM/ARMBaseRegisterInfo.cpp
>
> This looks late for a virtual register to appear. Where is this vreg made real?
The register scavenger should take care of such emergency post-RA
register allocation. For thumb1, this happens in
Thumb1RegisterInfo::saveScavengerRegister():
http://llvm.org/docs/doxygen/html/structllvm_1_1Thumb1RegisterInfo.html#ac73131381e7f5533f8e1e601f8e1c9ca
Cheers,
Jon
>
> Thanks,
> -steve
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc...
2015 Jan 29
3
[LLVMdev] creating a vreg in eliminateFrameIndex()
Hello LLVM,
The ARM target sometimes adds an instruction with a virtual register
in eliminateFrameIndex():
https://github.com/llvm-mirror/llvm/blob/master/lib/Target/ARM/ARMBaseRegisterInfo.cpp
This looks late for a virtual register to appear. Where is this vreg made real?
Thanks,
-steve
2015 Jan 30
2
[LLVMdev] creating a vreg in eliminateFrameIndex()
...b/Target/ARM/ARMBaseRegisterInfo.cpp
>>
>> This looks late for a virtual register to appear. Where is this vreg made
>> real?
>
> The register scavenger should take care of such emergency post-RA register
> allocation. For thumb1, this happens in
> Thumb1RegisterInfo::saveScavengerRegister():
> http://llvm.org/docs/doxygen/html/structllvm_1_1Thumb1RegisterInfo.html#ac73131381e7f5533f8e1e601f8e1c9ca
>
>
> Cheers,
>
> Jon
>>
>>
>> Thanks,
>> -steve
>> _______________________________________________
>> LLVM Developers mailing list...
2012 Nov 10
0
[LLVMdev] register scavenger
....
>
> Instead it tries to restore it only right before register it is freeing up.
>
> Maybe I'm misunderstanding this code.
>
> // If the target knows how to save/restore the register, let it do so;
> // otherwise, use the emergency stack spill slot.
> if (!TRI->saveScavengerRegister(*MBB, I, UseMI, RC, SReg)) {
> // Spill the scavenged register before I.
> assert(ScavengingFrameIndex >= 0 &&
> "Cannot scavenge register without an emergency spill slot!");
> TII->storeRegToStackSlot(*MBB, I, SReg, true, ScavengingFrame...
2012 Nov 11
0
[LLVMdev] register scavenger
CC the list.
On Sat, Nov 10, 2012 at 6:30 PM, Arnold Schwaighofer
<arnold.schwaighofer at gmail.com> wrote:
> Assuming you use the scavenger in your own code yes.
>
> A usage could look like:
>
> for all basic blocks BB:
> RS->enter(BB)
> for all instructions CurrInst in block order:
> if CurrInst has virtual def
> CurrReg = RS->scavenge(CurrInst)
2015 Jan 30
0
[LLVMdev] creating a vreg in eliminateFrameIndex()
...;> This looks late for a virtual register to appear. Where is this
> >> vreg made
> >> real?
> >
> > The register scavenger should take care of such emergency post-RA
> > register
> > allocation. For thumb1, this happens in
> > Thumb1RegisterInfo::saveScavengerRegister():
> > http://llvm.org/docs/doxygen/html/structllvm_1_1Thumb1RegisterInfo.html#ac73131381e7f5533f8e1e601f8e1c9ca
> >
> >
> > Cheers,
> >
> > Jon
> >>
> >>
> >> Thanks,
> >> -steve
> >> _______________________________...