使用llvm提示编译器

Met*_*est 4 c compiler-construction llvm clang

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

Eli*_*sky 5

这个问题可以指几个不同的东西:

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