[LLVMdev] Liveness analysis on MachineBasicBlock

Bin Zeng ezengbin at gmail.com
Tue Nov 9 20:14:23 PST 2010


Hi all,

I am trying to compute the liveness information for each MachineInstr in 
each MachineBasicBlock. I am not sure if it is correct. Here is how I 
compute the info.

For each MachineBasicBlock MBB
     compute the LiveOuts of MBB by unioning all the LiveIns of its 
successors
     for each MachineInstr MI = MBB->rbegin() to MBB->rend()
         compute the LiveOuts of each MI by LiveIn = Uses Union 
(LiveOuts - Defs)

I am not sure that the LiveIns of each MachineBasicBlock are updated 
during each pass.
Also, it seems that the MachineBasicBlock's at the end of a 
MachineFunction should include the
registers that live out of the MachineFunction, which usually are the 
return values through physical
registers.

Any advice will be appreciated. Thanks in advance.

~Bin



More information about the llvm-dev mailing list