zoukankan      html  css  js  c++  java
  • 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的同学最后都能坚持到底,成为大牛。
    ------------------------------------------------------------------------------------转载请注明出处----------------------------------------------------------------------------------------------------------------
  • 相关阅读:
    第十六周 项目一-平方根中的异常
    LeetCode之小孩分糖果
    C#中怎样将List<自己定义>转为Json格式 及相关函数-DataContractJsonSerializer
    (016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)
    物化视图
    FZU2171:防守阵地 II(线段树)
    鸡尾酒排序
    Android BlueDroid(三):BlueDroid蓝牙开启过程enable
    CF Codeforces Round #256 (Div. 2) D (448D) Multiplication Table
    window.open()具体解释及浏览器兼容性问题
  • 原文地址:https://www.cnblogs.com/ainima/p/6331990.html
Copyright © 2011-2022 走看看