我正在查看LLVM库,我发现Clang发出了添加此元数据的LLVM IR模块:
!llvm.module.flags = !{!0}
!llvm.ident = !{!1}
!0 = !{i32 1, !"PIC Level", i32 2}
!1 = !{!"Apple LLVM version 7.3.0 (clang-703.0.31)"}
然后我发现在模块上调用方法setPICLevel()
会得到类似的结果:
!0 = !{i32 1, !"PIC Level", i32 0}
因此整个元数据!0
与PIC级别有关。
我一直在网上搜索它,但我什么都没发现。 什么是PIC级别,它表示什么?
答案 0 :(得分:5)
这是一个仅适用于PowerPC的标志,否则将被忽略。它将与位置无关的代码模型设置为小型或大型模型。其他架构当然可以有PIC,但如果模型不适用于其他地方,则此标志表示大小。
您可以看到首次添加到LLVM的提交:http://comments.gmane.org/gmane.comp.compilers.llvm.cvs/205216
更多信息: