做者:snsn1984 学习
从接触LLVM编译器到如今,也有多半年时间了,在这多半年的时间里,也花了很多精力在上面。如今回过头来总结一下在LLVM的学习过程当中的一些感悟。(注:这里对LLVM的学习,不是指的是学习LLVM的使用,而是主要针对基于LLVM实现编译功能。) .net
一、 在开始学习LLVM以前,要有一个内心准备。由于在接下来的学习过程当中,会是比较艰难的一个过程,也是一个长期的过程,并且随着学习的深刻,会愈来愈难。 不要指望于短期就能够把LLVM整个搞明白,除非你是个天才。因此在这个长期的过程当中,坚持就是第一重要的,同时尽可能让本身保持对LLVM的兴趣,这会 让中间的过程变得不那么痛苦。
二、编译原理的基础知识必定要扎实,若是不扎实的话,就在学习LLVM的过程当中找补回来。因 为编译原理的知识都是基础中的基础,若是那些知识都弄不太明白的话,分析LLVM的源码和流程、以及修改LLVM源码,就成了一个美丽的扯。因此每次在论 坛上看到在校的大学生说那门课没用,这门课没用的时候,我内心就笑了,只是暂时没用到而已。(我当年也是那样的。)
三、文档和源码要经 常的读,反复的读,并且在读的过程当中要去想,为何要这样作。凡事问个为何,这在学习的过程当中只有好处,没有坏处。任何一个文档,任何一段代码,都有着 它特殊的含义,为何须要它的存在?它为何要这么实现?都是有它的道理的,若是能发现了这些的道理,那才算是真正读了内涵。
四、要去动手写。针对LLVM,在学习的过程当中,要不断的去写,写Pass,写LLVM Project,写Backend,写Frontend等,在写的过程当中,不断的加深所掌握的知识,不断的去学习新的知识。
五、 要善于提问,善于交流,善于总结。提问的话,能够在LLVM的邮件列表里,LLVM的邮件列表是至关的活跃的,是一个很好的学习交流的地方。总结的话,最 好是要多写,只有在写的过程当中,才能发现哪些东西是真的明白了,那些是还没搞清楚的。由于搞不清楚的,你很难用文字描述清楚的。
最后,但愿全部的学习LLVM的同窗最后都能坚持到底,成为大牛。 ------------------------------------------------------------------------------------ 转载请注明出处 ----------------------------------------------------------------------------------------------------------------