I’m interested in labeling each instruction produced in machine code when I compiler my program using LLVm. At first, I made a Module pass that basically labels every function and its associated instructions. And I attached a metadata all along just like Debug Loc. However, it turns out that each IR instruction may correspond to multiple MC instructions, and if these MC instructions undergo re-ordering due to dynamic optimization, I may end up with re-ordered MC instructions with the same label attached to them. I wish to avoid this situation.