LLVM Cookbook(Packt,2015)
- *重新理解 value --> use(每个IR就是一个value,SSA)
- builder.GetInsertBlock(); //Codegen: 先有cfg框架,TDD?
- if-then-else及for循环:需用PHI合并?(重点)
- 优化步(IR层)
- $ clang -S -O0 -emit-llvm test.cpp
- $ opt -O1 -S test.ll (注意:中间分析结果可以共享,如以文件数据库的形式,或VS里的.pdb)
- 3层概念:Function::iterator --> BasicBlock::iterator --> i->getOpcodeName()
- 别名分析(AA)
- AliasAnalysis:导出AliasResult、ModRefResult(*)
- alias(a,b):--> MustAlias(肯定是)、PartialAlias、MayAlias、NoAlias
- getAdjustedAnalysisPointer:当用多继承实现了分析接口?
- $ opt
- --aa-eval ...
- --print-dom-info ... (什么是dominator tree?

本文是关于LLVM Cookbook的读书笔记,深入探讨LLVM的IR、SSA、优化步骤、别名分析、DCE、指令生成等关键概念。讲解了如何使用Clang和opt进行编译和优化,并介绍了TableGen的使用以及LLVM后端的开发流程,包括寄存器分配、指令调度和SSA解构。同时,还涵盖了LLVM在异常处理、静态分析、 sanitizer和GC等方面的应用。
最低0.47元/天 解锁文章
715

被折叠的 条评论
为什么被折叠?



