LLVM每日谈之九 谈LLVM的学习

简介: 作者:snsn1984 从接触LLVM编译器到现在,也有多半年时间了,在这多半年的时间里,也花了不少精力在上面。现在回过头来总结一下在LLVM的学习过程中的一些感悟。

作者:snsn1984

从接触LLVM编译器到现在,也有多半年时间了,在这多半年的时间里,也花了不少精力在上面。现在回过头来总结一下在LLVM的学习过程中的一些感悟。(注:这里对LLVM的学习,不是指的是学习LLVM的使用,而是主要针对基于LLVM实现编译功能。)

1、在开始学习LLVM之前,要有一个心里准备。因为在接下来的学习过程中,会是比较艰难的一个过程,也是一个长期的过程,而且随着学习的深入,会越来越难。不要期望于短时间就可以把LLVM整个搞明白,除非你是个天才。所以在这个长期的过程中,坚持就是第一重要的,同时尽量让自己保持对LLVM的兴趣,这会让中间的过程变得不那么痛苦。
2、编译原理的基础知识一定要扎实,如果不扎实的话,就在学习LLVM的过程中找补回来。因为编译原理的知识都是基础中的基础,如果那些知识都弄不太明白的话,分析LLVM的源码和流程、以及修改LLVM源码,就成了一个美丽的扯。所以每次在论坛上看到在校的大学生说那门课没用,这门课没用的时候,我心里就笑了,只是暂时没用到而已。(我当年也是那样的。)
3、文档和源码要经常的读,反复的读,而且在读的过程中要去想,为什么要这样做。凡事问个为什么,这在学习的过程中只有好处,没有坏处。任何一个文档,任何一段代码,都有着它特殊的含义,为什么需要它的存在?它为什么要这么实现?都是有它的道理的,如果能发现了这些的道理,那才算是真正读了内涵。
4、要去动手写。针对LLVM,在学习的过程中,要不断的去写,写Pass,写LLVM Project,写Backend,写Frontend等,在写的过程中,不断的加深所掌握的知识,不断的去学习新的知识。
5、要善于提问,善于交流,善于总结。提问的话,可以在LLVM的邮件列表里,LLVM的邮件列表是相当的活跃的,是一个很好的学习交流的地方。总结的话,最好是要多写,只有在写的过程中,才能发现哪些东西是真的明白了,那些是还没搞清楚的。因为搞不清楚的,你很难用文字描述清楚的。
最后,希望所有的学习LLVM的同学最后都能坚持到底,成为大牛。
------------------------------------------------------------------------------------转载请注明出处----------------------------------------------------------------------------------------------------------------
目录
相关文章
|
测试技术 编译器 流计算
LLVM每日谈之一 LLVM是什么
作者:snsn1984 写在前面的话: 最近接触llvm比较多,在这个上面花了不少的时间。感觉llvm要完全理解透是个很不容易的事情,需要在学习过程中好好的整理下自己的思路。
1590 0
LLVM每日谈之十七 LLVM/Clang的学习的思考
        之前一直关注LLVM和基于LLVM的工程(工具)多一些,对Clang和基于Clang的工具关注不是很多。这就导致了一个很严重的问题,觉的如果要深入理解Clang就必须要去读Clang的源码,这个想法不是不对,但是这不是唯一的路,而且Clang的源码太多,容易让人无法坚持下去,也容易让人无从下手。
1103 0
|
编译器
LLVM每日谈之五 LLVM文档介绍
作者:snsn1984 LLVM的文档挺多,而且都是官方的文档,刚开始接触的时候很容易让人摸不着头脑,这里就简单的介绍下这些文档。希望能给学习LLVM的人提供一些帮助。
1008 0
|
Web App开发 前端开发 C语言
LLVM每日谈之七 Clang
作者:snsn1984         官方介绍Clang是LLVM native的一个面向C/C++/Objective-C的编译器,目标是要提供一个编译非常快的编译器。
1074 0
|
C++
Devirtualization in LLVM and Clang
Devirtualization in LLVM and Clang This blog post is part of a series of blog posts from students who were funded by the LLVM Found...
1377 0
从今天起,写一本关于LLVM的书----《深入理解LLVM》
       一直想写一本关于深入学习LLVM的书,这个想法有了很久了,但是一直没有机会动手。现在虽然很忙,但是依然觉的有必要马上动手去做这个事情。任何事情都是一点一点积累起来的,如果一直不动手,什么都做不成。
1663 0
|
C++ 索引 Python
LLVM每日谈之二十一 一些关于编译器和LLVM/Clang的代码
作者:史宁宁(snsn1984) 自己收集了一些LLVM/Clang的代码,并且自己也在一点一点的写一些LLVM/Clang以及编译器的代码,在这里把这些代码库分享出来,欢迎大家交流探讨。
1165 0
|
3月前
|
前端开发 编译器 C++
什么是LLVM项目?
什么是LLVM项目?
116 37
|
测试技术 编译器
LLVM每日谈之六 LLVM的源码结构
 作者:snsn1984 这里简单介绍下LLVM的源码结构,让大家知道LLVM的每个文件夹都放的是什么内容。 参考文档: http://llvm.org/docs/GettingStarted.html#getting-started llvm/examples 这个目录主要是一些简单例子,演示如何使用LLVM IR 和 JIT。
1166 0

热门文章

最新文章