作者:snsn1984
这是这一次零基础入门的最后一天,这次的主要任务是实战一个Pass。
任务描述:
实现一个Pass,该Pass可以读取一个程序中所有的for循环的循环头的名字并输出。
同时,实现一个测试用例去测试输出的结果是否正确。该Pass的输入应该包含嵌套
循环。
提示:
An llvm::FunctionPass using llvm::LoopInfo
LoopInfo &LI=getAnalysis<LoopInfo>() //In runOnFunction
getAnalysisUsage(AnalysisUsage &AU) //In structure
std::vector<Loop*> workList(LI.begin(), LI.end());
LoopInfo &LI=getAnalysis<LoopInfo>() //In runOnFunction
getAnalysisUsage(AnalysisUsage &AU) //In structure
std::vector<Loop*> workList(LI.begin(), LI.end());
在这个任务完成之后,应该已经达到可以达到可以分析和实现LLVM的Pass,查找和
分析LLVM的源码,查找需要使用的文档,并且可以知道下一步该如何自己学习LLVM。
-------------------------------------转载请注明出处----------------------------------------------------
-------------------------------------转载请注明出处----------------------------------------------------
来源:oschina
链接:https://my.oschina.net/u/860439/blog/110810