[LLVMdev] Moving data between regs

Fernando Magno Quintao Pereira fernando at CS.UCLA.EDU
Tue Jun 12 22:15:36 PDT 2007


Dear LLVMers,

     I wish someone could help me to clarify a register allocation 
question. I will use X86 in this example, but it really does not matter 
too much.

     Imagine that I have a virtual v stored in register AL, and I am about 
to cross a function call, that effectively overwrites AL. Well, I have, 
say, register ESI free, but as it happens, ESI is bigger than AL. It 
should be technically possible to move the contents of AL into ESI, to 
avoid spilling 'v', but I don't know if that is possible in LLVM. 
Basically, ESI is not in the class of 'v', and it has no 8 bit alias. Is
this a problem (the move can't be done), or am I missing something?

all the best,

Fernando



More information about the llvm-dev mailing list