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

时间:2012-01-08 10:50:03

标签: c++ compiler-construction llvm static-analysis backend

我正在学习编程LLVM后端。

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

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

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

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

3 个答案:

答案 0 :(得分:2)

所有LLVM转换都组织为lib / Transforms dir中的自包含传递,您可以使用opt工具读取其源代码并在代码上运行任意传递。

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

所以游乐场已经很宽敞了。

答案 1 :(得分:1)

作为3年前做过你想做的事的人: LLVM代码库是最好的例子。 也许一个好的起点是支配者分析,因为它在编译器书中有很好的描述。

检查LLVM中的完成方式:{​​{3}}

要查看的其他地方可能是指令调度。

答案 2 :(得分:1)

我正在寻找类似的东西,使用llvm库的代码,并且在google长时间会话后我刚刚在llvm网站的“llvm projects”下找到它:http://llvm.org/ProjectsWithLLVM/

只需下载您认为与您相关的内容并一起玩。