[LLVMdev] [PATCH] RegScavenger::scavengeRegister

Akira Hatanaka ahatanak at gmail.com
Mon Mar 25 12:04:02 PDT 2013

This patch adds parameter "EliminateFI" to RegScavenger::scavengeRegister,
which tells register scavenger not to eliminate frame index of the
emergency spill slot if set to false.

I have pseudo load, store and copy instructions which are generated during
register allocation and expanded post-RA but before the final stack size is
known. I use register scavenger to search for a temporary integer GPR that
is used during pseudo-expansion.

This is what happens during pseudo-expansion:

The following pseudo

LoadAC $acc, FI // Pseudo load instructions. Load from FI to accumulator

is expanded into this sequence:

LW $reg, FI         // load from FI to temporary GPR $reg
MTLO $reg         // copy $reg to register LO
LW $reg, FI + 4   // load from FI+4 to GPR $reg
MTHI $reg          // copy $reg to register HI
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130325/d05b1990/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rs-eliminatefi1.patch
Type: application/octet-stream
Size: 2353 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130325/d05b1990/attachment.obj>

More information about the llvm-dev mailing list