我正在学习编程LLVM后端。
目前我对分析通道,后期程序转换感兴趣。 (我假设因为我会更精确地进行分析,那么将有时间进行程序转换)。
你能推荐学习资源吗? (我知道LLVM程序员手册和Dragon Book;))。
资源我不仅指教程,书籍,还包括特别小的精心编写的项目。我想阅读代码示例,编译它们并与它们一起玩(破解一点)以了解有关实际实现的更多信息。
这些代码不必限于分析部分。主题是LLVM后端编程,而分析和程序转换是最有趣的。
答案 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/
只需下载您认为与您相关的内容并一起玩。