使用llvm提示编译器

时间:2012-02-13 13:27:52

标签: c compiler-construction llvm clang

我正在研究一种采用LLVM IR并修改它的工具。我有兴趣允许程序员给编译器提示。例如,他可以提示特定循环是计算密集型的。为此,我想到的一件事是使用一个pragma。所以我的问题是,我们如何让pragma工作?我可以在LLVM IR中获得编译指示信息吗?这类任务有哪些选择?

1 个答案:

答案 0 :(得分:5)

这个问题可以指几个不同的事情:

  • 如果您想了解如何实施pragma,请看看Clang是如何实现的。即各种pragma指令被翻译成什么。
  • 如果您想了解现有的提示(例如inlinehintbyval等),请查看属性 - 例如Function Attributes
  • 如果您想要更灵活和专有的东西,您可以使用元数据。 LLVM本身将它用于各种目的,但在您自己的编译器中,您可以非常自由地使用它。编译器的提示是一种可能的应用程序。