Annotate generated machine code / binary with LLVM basic block information

Hi everyone,
What I want to do is to generate an X86 binary that is annorated with LLVM basic block information, which can be helpful for further trace-based analysis. After I go through the documents, the only way I can think of is writing a MachineFunctionPass and adding dummy instructions to the beginning and end of each basic block that indicates its ID. Since this requires a recompilation of entire LLVM, which is far from ideal, so I follow the suggestion on the documentation and come and ask here first. I am really new to LLVM, so any suggestions would be very appreciated!