[LLVMdev] Live ranges of physical registers

Fernando Magno Quintao Pereira fernando at CS.UCLA.EDU
Thu Jun 1 15:35:22 PDT 2006


Dear LLVM guys,

    I am coding a liveness analysis algorithm, and I found this comment
on LiveVariables.cpp:

Line 00195 - http://llvm.org/doxygen/LiveVariables_8cpp-source.html :

  // PhysRegInfo - Keep track of which instruction was the last use of a
  // physical register.  This is a purely local property, because all
physical
  // register references as presumed dead across basic blocks.

Indeed, I am using the X86 architecture, and I could not find
general purpose registers such as EAX, EBX, etc, alive in between basic
blocks in the control flow graphs generated by LLVM.
(some specific registers, such as the stack pointer, will be, of
course, alive). Could someone tell me a little bit about this?
Is this property true due to the way LLVM generates code?
Can I assume that registers available for register allocation will not
be alive in between basic blocks?

Thank you very much,

Fernando



More information about the llvm-dev mailing list