[LLVMdev] Need advice on writing scheduling pass

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu May 26 07:33:50 PDT 2011


On May 26, 2011, at 6:36 AM, Gergö Barany wrote:

>> One thing that is somewhat unclear to me is why phys-regs are only considered live to end of block? Is this because the RA later ignores these registers? How come
>> this information is not needed?
> 
> My understanding is that physregs are only ever used for very brief, local
> operations; for instance, an argument register is loaded before a function
> call but is dead afterwards. Return registers are immediately copied to
> virtual registers and can then be considered dead.
> 
> This way, you don't need to track liveness and reaching definitions for such
> registers across blocks.

That's right.

It it possible to have physregs live across blocks, but they must be explicitly added to the live-in list for each block.

/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110526/8be754cd/attachment.html>


More information about the llvm-dev mailing list