[LLVMdev] help converting llvm metadata into dwarf tags

Roger Wang innit42 at gmail.com
Mon Aug 23 16:01:43 PDT 2010


Dear all,

I'd like to find the memory location of certain instructions in a
compiled/linked binary. During the IR phase, I tag instructions I'm
interested in with LLVM'-2.7's new metadata (MDNodes with an identifiable
ID). I'd now like to propagate that data to the assembly via a custom DWARF
tag I attach to each X86 instruction created from a tagged IR instruction.
This will then find its way at assembly time into the binary from where I
retrieve it (by locating my custom tags with a DWARF consumer and dumping
the addresses of the instruction they're attached to).

Does this sound reasonable?

I've completed the first part, attaching the MDNodes to IR instructions but
I'm a bit overwhelmed by all the backend stuff.
How can I identify which IR instruction an X86 instruction came from (with a
view to attaching an identifying DW_TAG to it)?

I've found the tag definitions in include/llvm/Support/Dwarf.h and added my
own.
lib/CodeGen/AsmPrinter/DwarfDebug.cpp seems to be the only place that emits
dwarf data into the assembly stream. It also seems to create
a DebugInfoFinder which accesses the IR instructions.

Thanks for any pointers that might slow my spinning head down,

rw
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100824/98e6238e/attachment.html>


More information about the llvm-dev mailing list