如何在LLVM中标记指令并在编译后识别这些指令?

如何在LLVM中标记指令并在编译后识别这些指令?,llvm,llvm-ir,Llvm,Llvm Ir,我的问题是如何为LLVM优化过程中的指令设置标签。实际上,我的目标是找到一种方法,在编译生成的可执行文件的ELF元数据后提取一些标记的LLVM IR指令。最方便的方法是什么?我的想法是为这些所需的指令添加一个标签,以便在使用标签编译后找到它们 注意:我在LLVM过程中标记这些说明 感谢您使用getMDKindID()函数为模块上下文创建标签。然后使用指令的setMetadata应用它。但我不知道如何将此元数据放入可执行文件中,特别是考虑到LLVM IR和最终机器代码之间可能没有1:1的关系。@B

我的问题是如何为
LLVM
优化过程中的指令设置标签。实际上,我的目标是找到一种方法,在编译生成的可执行文件的
ELF
元数据后提取一些标记的
LLVM IR
指令。最方便的方法是什么?我的想法是为这些所需的指令添加一个标签,以便在使用标签编译后找到它们

注意:我在
LLVM
过程中标记这些说明


感谢您使用getMDKindID()函数为模块上下文创建标签。然后使用指令的setMetadata应用它。但我不知道如何将此元数据放入可执行文件中,特别是考虑到LLVM IR和最终机器代码之间可能没有1:1的关系。@Brian我实际上是通过手动向clang生成的LLVM IR添加标签来尝试这一点的。然后我可以看到,
llc
生成的汇编代码包含这些标签作为注释。然后通过取消对这些标签的注释,我们最终可以在带有
readelf
的可执行文件中找到它们。但我不确定这是最好的方法。