Adding comments to generated IR

I'm using createPrintModulePass to produce the IR of a created Module.
I'm wondering if there is some way to insert/attach comments to the
generated output. That is, prior to a given command, or block, emit a
comment.

I see the ability to add meta/debug data. Could that somehow be used to
get comments into the generated IR? Or is there some other mechanism?

I want to do this to help me diagnose problems in the IR that I am
generating.

Hi edA-qa mort-ora-y,

Hmm, this might work, but I can't get it to compile. Since I use RTTI
and LLVM does not, deriving from this class now causes GCC to look for
typeinfo and it doesn't find it. Until I find a solution there I can't
actually experiment with the annotation writer.

Perhaps this RTTI/typeinfo thing a common problem that you, or somebody,
already knows how to solve?

I've got some static data being output, but now I'm unsure on how I
should structure the actual strings I wish to write. For example, on the
emitFunctionAnnot I get a Function object, but I don't see any API which
we set/get user or meta data for a function.

(Note, obviously I can just do my own mapping of the Function pointer
and lookup what I want at this point. It just doesn't seem correct.)

Hi edA-qa mort-ora-y,

I want to be able to print a piece of the source code which is
associated with the following lines of IR (when printed). This is
strictly so I can better debug my code generation -- I don't need actual
debug information. For example, if a function is defined in the source
code I'd like the printed IR function to be preceeded with the line
which defined it. I don't need this information to become debug
information, just printed along with the dumped assembly.