<div dir="ltr">Hi Jonathan,<div><br></div><div>Thanks for your advice. It seems that the implementation of MachineBasicBlock::computeRegisterLiveness is</div><div>limited to one MachineBasicBlock. If I want to get Live-in registers after register allocation, using the method</div>
<div>you mentioned, I have to do the data flow analysis for the whole program. Is that correct?</div><div><br></div><div>Again thanks for your help!</div><div><br></div><div>Best regards,</div><div>Alex</div><div><br></div>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 21, 2014 at 12:11 PM, Jonathan Roelofs <span dir="ltr"><<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
<br>
On 8/21/14, 9:54 AM, Alex S wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
Sorry to bother those not interested in this problem.<br>
<br>
I have a problem while I want to reuse the liveness information after register<br>
allocation.<br>
When I use the livein_begin() from MachineBasicBlock to get the live-in<br>
registers after<br>
register alloction. I found that the liveness information is sometime incorrect.<br>
For example,<br>
some registers should be live-in to the machine basic block as these registers<br>
are upward exposed<br>
in this machine basic block.<br>
<br>
Therefore, I wonder whether there are any liveness analysis available after<br>
register allocation.<br>
Or, did I misunderstand it?<br>
</blockquote></div></div>
I was looking for post-RA liveness the other day and ran into: MachineBasicBlock::<u></u>computeRegisterLiveness, does it do what you want?<br>
<br>
The neighborhood thing seemed a bit wonky for what I needed at the time, so I didn't end up using it, and in turn pursued a different solution to my problem that didn't need post-RA liveness (I'd need the neighborhood to be the whole basic block, and that seemed a bit awkward).<br>

<br>
<br>
HTH,<br>
<br>
Jon<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thanks,<br>
Alex<br>
<br>
<br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
<br><span class="HOEnZb"><font color="#888888">
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
<br>
-- <br>
Jon Roelofs<br>
<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a><br>
CodeSourcery / Mentor Embedded<br>
</font></span></blockquote></div><br></div>