[LLVMdev] Can TargetInstrInfo::storeRegToStackSlot use temp/virtual regs?

Dan Gohman gohman at apple.com
Mon Jan 26 13:28:14 PST 2009


On Jan 23, 2009, at 3:28 AM, Mondada Gabriele wrote:

> Hi,
> I'm implementing storeRegToStackSlot() and, in order to store some  
> specific registers (floating point regs and address regs) I've to  
> copy them to more standard regs and copy these last ones to the slot.
> I tried to generate instructions that use physical registers, but by  
> doing that I overwrote registers already assigned by the register  
> allocator.
> Is it possible to use virtual registers in the instructions  
> generated by storeRegToStackSlot()?
> This function is called by the register allocator. So, if it needs  
> to store regs on a slot, this means that there is no more registers  
> available. So, I cannot believe that it is able to allocate new  
> virtual registers generated by storeRegToStackSlot().

Your analysis here sounds right. The current design with
storeRegToStackSlot currently assumes that any register
can be stored without requiring intermediate registers.

>
> What is the good way to implement this ?

It looks like you'll have to make your own way here. If
you find a good solution, perhaps others with similar needs
may be able to follow.

Dan




More information about the llvm-dev mailing list