用于学习LLVM后端编程的代码示例

Grz*_*cki 16 c++ compiler-construction static-analysis backend llvm

我正在学习编程LLVM后端.

目前我对分析通道,后期程序转换感兴趣.(我假设因为我会更精确地进行分析,那么将有时间进行程序转换).

你能推荐学习资源吗?(我知道LLVM程序员手册和Dragon Book;)).

根据资源,我的意思不仅是教程,书籍,还有特别小的精心编写的项目.我想阅读代码示例,编译它们并与它们一起玩(破解一点)以了解有关实际实现的更多信息.

这些代码不必限于分析部分.主题是LLVM后端编程,而分析和程序转换是最有趣的.

arr*_*owd 2

所有 LLVM 转换都被组织为 lib/Transforms 目录中的独立通道,您可以读取其源代码并使用opt工具在代码上运行任何任意通道。

另外,还有一个很好的教程,介绍如何编写自己的 pass 并将其用作可加载模块,而无需重新编译整个 LLVM。

所以已经有相当广阔的操场了。

  • **我询问的不仅仅是文档本身和 llvm 源代码。特别是我写过一些关于小型(甚至是黑客 LLVM 的玩具示例)项目的文章**。我强调了[LLVM手册](http://llvm.org/docs/)的知识,其中包括:[“编程”部分提到的LLVM doxygen](http://llvm.org/doxygen/)关于[LLVM CMake 指南](http://llvm.org/docs/CMake.html#passdev) 中的源代码 3 进行编程,...有很多文档,您可以获得项目的良好整体视图。然而,在许多方面,文档都很糟糕,因此还有更多问题。 (3认同)
  • 好吧好吧,抱歉回答无关紧要。至于从树中开发pass,这个功能其实是我开发的,哈哈。 (2认同)