[LLVMdev] How to print "Instruction" nodes instead of "BasicBlock" in a .dot file ?

Shen Liu shl413 at lehigh.edu
Wed Mar 4 10:27:59 PST 2015


Dear LLVM developers,

I am Shen, a PhD student in computer science in lehigh university. Now I am
using LLVM to generate a Program Dependence Graph(PDG), and each node in my
graph represent a statement(should be an Instruction in LLVM, i think).

Now I have generated a coarse PDG on BasicBlock level as shown in the
following figure, using APIs such as

std::string getNodeLabel(const BasicBlock
<http://llvm.org/docs/doxygen/html/classllvm_1_1BasicBlock.html> *Node
<http://llvm.org/docs/doxygen/html/DominanceFrontierImpl_8h.html#adeb436e8060b57a35092e28f77eeb7d3>,
const Function <http://llvm.org/docs/doxygen/html/classllvm_1_1Function.html>
*Graph)

However, all APIs I found in class DOTGraphTraits ask "BasicBlock", not
Instruction for arguments. So if i want to generate a more fine-grained PDG
on "Instruction" level, should i revise the llvm source code to add my new
APIs, or use some built-in APIs i did't know? Or, can i generate a
basicblock for each instruction? Thank you!


​
Best regards,

Shen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150304/e7e71401/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sdg.png
Type: image/png
Size: 160159 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150304/e7e71401/attachment.png>


More information about the llvm-dev mailing list