[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