文档开发者中心
我的

方舟编译器学习笔记:文档导读

关联阅读:


1、方舟编译器学习笔记: 源码编译


2、方舟编译器学习笔记:方舟可执行文件简介


方舟编译器源码放出来之后,大家热情高涨,很多人摩拳擦掌的准备下手好好研究一番。但是因为这次开源的并不是全部文档和代码,所以很容易让人疑惑,在这里就对本次开源的几个文档做个简单的介绍,方便初学者熟悉。

本次开源出来的文档共有8个:

1、Compiler_Phase_Descriptions.md,

2、Developer_Guide.md,

3、Devlopment_Preparation.md,

4、MapleIRDesign.md,

5、Naïve_RC_Insertion_Description.md,

6、Programming_Specifications.md,

7、RC_API.md,

8、Vtable_Itable_Description.md。

还有一个文档中用到的图片的目录media。

我们将这几个文档分类介绍:

第一类,配置环境并编译代码的文档。这一类文档有2(Developer_Guide.md)和3(Devlopment_Preparation.md)。3讲编译前的环境配置,2讲编译的步骤。

第二类:中端(IR)及其优化的文档。这一类文档有1(Compiler_Phase_Descriptions.md)和4(MapleIRDesign.md)。4是介绍方舟的IR maple设计的文档,1是介绍基于中端IR做优化的phase的文档。IR的设计文档,是这次开源的最重要的文档,是重中之重。而这次开源本身就以IR为主,所以它就是这批开源的文档之中最重要的文档,没有之一。这里的phase很像基于LLVM IR做分和优化的pass,都是有Manager类来管理,都是做分析优化,然后都是要重载核心的run函数。

第三类:引用计数的文档。这类文档有5(Naïve_RC_Insertion_Description.md)和7(RC_API.md)。前者介绍了朴素版RC插入原理,方便理解朴素版本的RC如何进行插入;后者则是介绍了方舟编译器的引用计数的API,直接给出了API的列表。

第四类:编码规范。这类文档有6(Programming_Specifications.md)。程序员都知道这类文档是做什么用的。我们一时半会也没办法给方舟大量的提交代码,所以这个编码规范知道就好了,暂时也没必要花太多的时间去研究它。

第五类:虚函数表和接口函数表文档。这类文档有8(Vtable_Itable_Description.md),该文档就是介绍方舟编译器的虚函数表以及接口函数表的设计。

所以我们再回头去看这五类文档:

1、 第一类(配置和编译文档)和第四类(编码规范),都是简单翻翻就好了,不需要花太大的精力。第一类(配置和编译文档)编译完代码就不用看了,第四类(编码规范)需要提交代码的时候再细细研究也不迟。

2、 第三类(引用计数)和第五类(虚函数表和接口函数表)都是部分性功能,对这部分功能感兴趣,或者是用到这部分的时候,可以仔细研究研究。

3、 第二类(IR及相关优化),这部分的文档是框架级别的,直接关系到IR的设计以及之上的分析和优化,也是这次发布的核心,这次发布的代码也是以这块为主的,所以这类里的两个文档是需要结合代码好好读的。

最后,综合而言,这次发布最重要的文档,最需要花费精力好好研究一下的文档,必然是IR的设计文档:MapleIRDesign.md。想要好好研究方舟编译器的同学,不可错过该文档。

后记:一家之言,啰里啰嗦,欢迎大家赐教。

————————————————————


本文转自知乎,作者:小乖他爹


原链接:

点赞
收藏
回复
2
分享
举报
浏览2311 发布于2019-10-15 08:15未知归属地
全部评论
最多点赞
最新发布
最早发布

感谢转载分享!

1楼回复于2019-10-15 08:17 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。