<div dir="ltr"><div><div><div><div><div>Dear all,<br><br></div>I use the clang frontend to produce the control flow graph of a C program through<br>this command:<br>clang -Xclang -analyze -Xclang -analyzer-checker=debug.DumpCFG test.c<br>
<br></div>The produced information contains all the basic blocks identified by labels,<br>e.g. B1, B2, etc. along with their predecessors and successors.<br><br></div>Is there a way to get the starting address of each of these basic block?<br>
</div><div>I would like to map the basic block labels produced by CFG  with the actual<br></div><div>corresponding basic block starting addresses.<br><br></div>Could I use llvm to do this? From what I understand this issued is unrelevant with<br>
</div>IR. Maybe I could get something from the machine code (MC). Perhaps<br>I have to write a pass for llvm backend. Maybe I could get this information from<br><tt class=""><span class="">BranchFolder</span></tt> and <tt class=""><span class="">IfConverter</span></tt> machine
function passes:<br><a href="http://llvm.org/docs/WritingAnLLVMBackend.html#branch-folding-and-if-conversion">http://llvm.org/docs/WritingAnLLVMBackend.html#branch-folding-and-if-conversion</a><br clear="all"><div><div><div>
<div><div><div><div>but I am not sure.<br><br></div><div>I am new to llvm so I need some help,<br><br></div><div>Thank you,<br></div><div><br>-- <br><font color="#888888"><font face="Helvetica, Verdana, Arial"><span style="font-size:11pt"><font color="#888888"><span>Thanasis</span> <span>Petsas</span><div>

Distributed Computing Systems (<span>DCS</span>)<br>
Institute of Computer Science (ICS/FORTH)<br>
Heraklion, Crete<br>
<span>Greece</span> (GR)<br><br><font color="#888888"><font face="Helvetica, Verdana, Arial"><span style="font-size:11pt"><font color="#888888"><a href="http://www.thanasispetsas.com/" target="_blank">http://www.thanasispetsas.com/</a></font></span></font></font><br>
</div></font></span></font></font>
</div></div></div></div></div></div></div></div>