怎么学习LLVM

想学习llvm,除了编译原理,还需要哪些知识;
另外怎么看llvm的代码?

阅读 6.6k
3 个回答

可以参考一下这个问题,我觉得底下有几个回答比较靠谱.
起初我也准备看LLVM源码,因为做一个小项目中要用,后来发现用clang这个编译器前端就基本能搞定了,主要也就看clang相应的文档去了(libClang,ASTMatcher,RecursiveAST).
LLVM入手的话还是照着官网上,你所安装的LLVM对应版本的教程来吧:万花筒:用LLVM实现一门语言

把2004年Lattner的那篇论文翻出来,看一看,理解一下整体架构。如果你是想搞编译前端,就去啃clang的源码,什么词法语法以及AST都有。而且还有一些很方便的接口供你使用,什么Rewriter,RecursiveASTVisitor啊,什么ASTMatcher啊等等。如果你想搞静态代码分析,就去看clang static analyzer的源码。如果你想搞编译后端,什么数据流分析,代码优化啊,代码生成,以及一些“黑科技”就去看LLVM的源码。

youtube有历年开发者会议的视频,llvm官网上也有llvm相关的paper,文档再加代码应该差不多了。关键是要找到自己要深入研究的部分,一口吃个大胖子,是很难的。

新手上路,请多包涵

我觉得你把编译原理啃透,再看看虚拟机的东西,这些加起来也有八成了。现在花巧东西太多,基础根本性的知识到现在变化都不大。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进