zt知乎:方舟编译器的开源达到各位的预期了吗? 324回复/ 50349311 浏览

全部回帖

收起
引用 @用户0362788623 发表的:
只看此人
发这些有毛用,想黑的人会选择性无视
发这些有毛用,想黑的人会选择性无视
他这就是现在编译器框架代码分析,和应用差十万八千里。
他这就是现在编译器框架代码分析,和应用差十万八千里。
亮了(28)
回复
引用 @macrohuge 发表的:
只看此人
本帖9楼就有参加方舟编译器线下活动的知友写的长篇文章链接,还是那句话,你们就是有用的回答不看,光跟着废物回答一起狒疼
本帖9楼就有参加方舟编译器线下活动的知友写的长篇文章链接,还是那句话,你们就是有用的回答不看,光跟着废物回答一起狒疼
我承认,我自己不懂这方面的东西
但你的意思是,我发的知乎上这些批评者都是废物,就那一个人是专家,是吧
那我没话说。我也没有黑华为的意思。随便你咯
我承认,我自己不懂这方面的东西
但你的意思是,我发的知乎上这些批评者都是废物,就那一个人是专家,是吧
那我没话说。我也没有黑华为的意思。随便你咯
亮了(40)
回复
查看评论(5)
引用 @让我再躺会儿 发表的:
只看此人
https://www.zhihu.com/answer/808727474,这个5k赞的看看?
https://www.zhihu.com/answer/808727474,这个5k赞的看看?

知乎最神奇的群体:匿名用户

知乎最神奇的群体:匿名用户

亮了(27)
回复
查看评论(1)
开源了9w行? 现代编译器大概400-800w行,体会下...
开源了9w行? 现代编译器大概400-800w行,体会下...
亮了(2)
回复
引用 @zhangsl8397 发表的:
只看此人

[图片]

[图片]

[图片]

[图片]

[图片]

[图片]

[图片]

这是他那个知乎回答下面的东西,我看和楼主发的一样的啊,都是批评,你说的那些在哪里呢?

查看更多

这是他那个知乎回答下面的东西,我看和楼主发的一样的啊,都是批评,你说的那些在哪里呢?

https://zhuanlan.zhihu.com/p/83970391 你可以看看这位大神的方舟编译器学习笔记专栏,他参加过开源线下交流,讲真,我不明白上来就下结论看衰的到底有没有真正了解,一个这么大的工程,刨去跟风黑和吹得,剩下像这样研究琢磨的能有百分之十吗?
https://zhuanlan.zhihu.com/p/83970391 你可以看看这位大神的方舟编译器学习笔记专栏,他参加过开源线下交流,讲真,我不明白上来就下结论看衰的到底有没有真正了解,一个这么大的工程,刨去跟风黑和吹得,剩下像这样研究琢磨的能有百分之十吗?
亮了(4)
回复
查看评论(1)

https://www.zhihu.com/question/343431810/answer/808561998?hb_wx_block=1

https://www.zhihu.com/question/343431810/answer/808561998?hb_wx_block=1

亮了(0)
回复
引用 @无心丶恋 发表的:
只看此人
100级的号就这水平?哪一家发布会不吹。苹果吹夜景、红米吹芯片和810相当,翻车没有,恶心不恶心?不都是一个套路吗,有啥可惊讶的。 支付宝那个华为官方有说过是方舟编译后快的吗?还扯到虚假宣传了,网友自己说的,跟虚假宣传有个啥关系?这都是什么脑回路。
100级的号就这水平?哪一家发布会不吹。苹果吹夜景、红米吹芯片和810相当,翻车没有,恶心不恶心?不都是一个套路吗,有啥可惊讶的。

支付宝那个华为官方有说过是方舟编译后快的吗?还扯到虚假宣传了,网友自己说的,跟虚假宣传有个啥关系?这都是什么脑回路。
gt那只是发布会吹?
当时数码区一片秒杀845,战平855的评论我可是历历在目
后来爱否直播测试,测试结果对gt不利,数码区还一堆人冷嘲热讽,我知道说到这里,肯定又有人要说爱否屁股是歪的了,没错,爱否屁股是歪的,但就那次直播测试gt来说,一点问题都没有
gt那只是发布会吹?
当时数码区一片秒杀845,战平855的评论我可是历历在目
后来爱否直播测试,测试结果对gt不利,数码区还一堆人冷嘲热讽,我知道说到这里,肯定又有人要说爱否屁股是歪的了,没错,爱否屁股是歪的,但就那次直播测试gt来说,一点问题都没有
亮了(84)
回复
查看评论(3)
引用 @用户ID已封 发表的:
只看此人
花粉进来喵一眼立即点击右上角红叉叉
花粉进来喵一眼立即点击右上角红叉叉
你错了 先点灭再❌❌
你错了 先点灭再❌❌
亮了(12)
回复
查看评论(1)
引用 @罗罗CCC 发表的:
只看此人
行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好
行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好
华为请了世界顶尖大佬来做这个,你跟我说985边角料?
一个偏硬件的公司,逐渐进军硬件/软件的中间层级,最后搞到软件级别,你阿里腾讯软件牛皮,你也拿出PPT来看啊,更何况还不是PPT。
华为请了世界顶尖大佬来做这个,你跟我说985边角料?
一个偏硬件的公司,逐渐进军硬件/软件的中间层级,最后搞到软件级别,你阿里腾讯软件牛皮,你也拿出PPT来看啊,更何况还不是PPT。
亮了(4)
回复
引用 @曼联名宿范佩西 发表的:
只看此人
那看来支付宝团队是太闲了才出来辟谣的
那看来支付宝团队是太闲了才出来辟谣的
在同一时间段,华为介绍了方舟编译器这个项目,支付宝也优化了自家APP。在大家有所联想和误解难道不是很正常?支付宝作为当事人知道这个和方舟编译器没有半毛钱关系,出来辟谣有什么别的涵义吗?
你的意思就是说,支付宝辟谣了,这个造谣的人一定就是华为。
在同一时间段,华为介绍了方舟编译器这个项目,支付宝也优化了自家APP。在大家有所联想和误解难道不是很正常?支付宝作为当事人知道这个和方舟编译器没有半毛钱关系,出来辟谣有什么别的涵义吗?
你的意思就是说,支付宝辟谣了,这个造谣的人一定就是华为。
亮了(16)
回复
查看评论(2)
引用 @罗罗CCC 发表的:
只看此人
行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好
行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好

985都成边角料了… 这也太惨了吧…

985都成边角料了… 这也太惨了吧…

亮了(5)
回复
查看评论(1)
引用 @薛茗之 发表的:
只看此人

一、部分视频研讨

方舟编译器源码初探

[media]url=https://www.bilibili.com/video/av66296736/;[/media]

方舟编译器源码深探之一

[media]url=https://www.bilibili.com/video/av66760612/;[/media]

二、专栏:方舟编译器学习笔记

https://zhuanlan.zhihu.com/openarkcompiler

作者:小乖他爹链接:https://www.zhihu.com/question/343667346/answer/829971679来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小乖他爹:方舟编译器学习笔记1:方舟相关资料

小乖他爹:方舟编译器学习笔记2:源码编译

小乖他爹:方舟编译器学习笔记3 方舟可执行文件简介

小乖他爹:方舟编译器学习笔记4 文档导读

小乖他爹:方舟编译器学习笔记5 方舟开始接受代码合并请求

小乖他爹:方舟编译器学习笔记6 方舟开源目录简介

小乖他爹:方舟编译器学习笔记7 对java2jar及方舟工具链的进一步分析

小乖他爹:方舟编译器学习笔记8 工具链可运行(helloworld编译成功)

小乖他爹:方舟编译器学习笔记9 测试用例编译过程的试优化

小乖他爹:[方舟动态]方舟编译器开源技术沙龙见闻

小乖他爹:[方舟动态]上海方舟编译器开源代码学习讨论会成功举办

小乖他爹:方舟编译器学习笔记10 线下活动交流后的思考

小乖他爹:方舟编译器学习笔记11 IR设计文档中的IR总体设计思想

小乖他爹:方舟编译器学习笔记12 方舟编译器的phase

小乖他爹:方舟编译器学习笔记13 方舟编译器phase相关类的关系辨析

小乖他爹:方舟编译器学习笔记14 DriverRunner源码分析

小乖他爹:方舟编译器学习笔记15 DriverRunner的调用关系分析与编译工具链的反思

小乖他爹:方舟编译器学习笔记16 MapleCombCompiler与phase体系的代码对照

小乖他爹:方舟编译器学习笔记17 phase的实现和使用

小乖他爹:方舟编译器学习笔记18 Compiler及其子类

小乖他爹:方舟编译器学习笔记19 方舟编译器IR基本类型与LLVM IR基本类型的对比

小乖他爹:方舟编译器学习笔记20 方舟编译器的IR结构和LLVM的IR结构对比

小乖他爹:方舟编译器学习笔记21 MAPLE IR设计的指导论文——Fred Chow论文阅读

小乖他爹:方舟编译器学习笔记22 MAPLE IR和LLVM IR中module层面的信息对比

小乖他爹:方舟编译器学习笔记23 虚函数表和接口函数表的分析和验证

小乖他爹:方舟编译器学习笔记24 以一维数组为例看MAPLE IR中存储访问

小乖他爹:方舟编译器学习笔记25 MAPLE IR中的field-ID

三、方舟开源目录简介此次开源所放出来的一级目录主要六个:1、build目录:该目录下主要是环境设置脚本,和一些build所用的Makefile。2、doc目录:本次发布的几个文档,具体内容介绍见 文档导读 。3、license目录:许可文件。4、samples目录:示例程序目录,本次发布共公开了六个示例程序。5、src目录:本次发布所公开的源码目录。6、tools目录:为编译和使用过程中所用到的其他工具所预留的目录,该目录后续将存放llvm、gn、ninja。我们所关注的源码,是位于src目录之下。src目录之下又有12个文件夹:1、bin目录:该目录之下是四个可执行文件,其中除了maple之外的三个可执行文件,都要在build的时候copy到out/bin目录之下。2、third_party目录:该目录之下存放了第三方库zlib。3、deplibs目录:该目录之下存放了四个库,应该是编译的时候需要依赖的。其中的libmempool.a、libmplphase.a和libmaple_driverutil.a是编译maple所需要的,但是src目录之下的mempool目录、mpl_phase目录、mpl_util目录都只有头文件,所以直接在源码里附上这几个库。4、mempool目录:推测应该是内存池相关的代码,但是只有头文件,没有源文件。5、mpl_phase目录:推测是maple的phase的基本框架的代码,不包含具体的phase的代码。该目录只有头文件,没有源文件。关于phase,doc目录有两个关于phase的文档,可以从文档中获取一部分信息。6、mpl_util目录:推测是maple需要的一些util,字符串、log、计时器、版本等内容。7、huawei_secure_c目录:是一些安全代码,主要字符串操作、输入输出等,具体到函数就是str_cat_s、str_cpy_s等。8、maple_driver目录:这是maple可执行程序的主要源码所在的位置,它会调用其他的maple_开头的目录的部分内容。从其BUILD.gn中可以看到:另外,该目录之下的src/maple.cpp中的main函数,是maple可执行程序的入口。我们前文也提到过maple是out/bin目录下面的四个可执行程序中唯一一个根据源码编译出来的,所以我们要分析方舟的程序,绕不开这个目录以及这个入口点。9、maple_ipa目录:该目录是interleaved_manager和module_phase_manager的相关代码。phase的文档中对这块都有介绍:“PhaseManager负责phase的创建、管理和运行。与phase对应,有ModulePhaseManager和MeFuncPhaseManager两类。InterleavedManager负责phase manager的创建、管理和运行。通过调用AddPhases接口,它将创建一个对应类型的phase manager并添加进MapleVector中, 同时该phase manager相应的phase注册、添加也会自动被触发。”可以理解为ModulePhase类的phase的运行框架部分。10、maple_ir目录:该目录是针对maple的ir的基本操作的相关代码,与LLVM针对ir的基本操作类似。主要是对IR进行基本的分析,获取ir所要表达的信息。为之后的优化作准备。11、maple_me目录:该目录包含了有关MeFuncPhase类别的phase的框架及其具体内容,这是phase相关的一部分。所有的具体的MeFuncPhase的子类,实现都在该目录之下。12、mpl2mpl目录:该目录包含了一些从maple ir到maple ir的转换,这种转换都是为了后续的me做准备。该目录下的主题内容是ModulePhase类别的phase的具体实现。

一、部分视频研讨

方舟编译器源码初探

[media]url=https://www.bilibili.com/video/av66296736/;[/media]

方舟编译器源码深探之一

[media]url=https://www.bilibili.com/video/av66760612/;[/media]

二、专栏:方舟编译器学习笔记

https://zhuanlan.zhihu.com/openarkcompiler


作者:小乖他爹
链接:https://www.zhihu.com/question/343667346/answer/829971679
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小乖他爹:方舟编译器学习笔记1:方舟相关资料

小乖他爹:方舟编译器学习笔记2:源码编译

小乖他爹:方舟编译器学习笔记3 方舟可执行文件简介

小乖他爹:方舟编译器学习笔记4 文档导读

小乖他爹:方舟编译器学习笔记5 方舟开始接受代码合并请求

小乖他爹:方舟编译器学习笔记6 方舟开源目录简介

小乖他爹:方舟编译器学习笔记7 对java2jar及方舟工具链的进一步分析

小乖他爹:方舟编译器学习笔记8 工具链可运行(helloworld编译成功)

小乖他爹:方舟编译器学习笔记9 测试用例编译过程的试优化

小乖他爹:[方舟动态]方舟编译器开源技术沙龙见闻

小乖他爹:[方舟动态]上海方舟编译器开源代码学习讨论会成功举办

小乖他爹:方舟编译器学习笔记10 线下活动交流后的思考

小乖他爹:方舟编译器学习笔记11 IR设计文档中的IR总体设计思想

小乖他爹:方舟编译器学习笔记12 方舟编译器的phase

小乖他爹:方舟编译器学习笔记13 方舟编译器phase相关类的关系辨析

小乖他爹:方舟编译器学习笔记14 DriverRunner源码分析

小乖他爹:方舟编译器学习笔记15 DriverRunner的调用关系分析与编译工具链的反思

小乖他爹:方舟编译器学习笔记16 MapleCombCompiler与phase体系的代码对照

小乖他爹:方舟编译器学习笔记17 phase的实现和使用

小乖他爹:方舟编译器学习笔记18 Compiler及其子类

小乖他爹:方舟编译器学习笔记19 方舟编译器IR基本类型与LLVM IR基本类型的对比

小乖他爹:方舟编译器学习笔记20 方舟编译器的IR结构和LLVM的IR结构对比

小乖他爹:方舟编译器学习笔记21 MAPLE IR设计的指导论文——Fred Chow论文阅读

小乖他爹:方舟编译器学习笔记22 MAPLE IR和LLVM IR中module层面的信息对比

小乖他爹:方舟编译器学习笔记23 虚函数表和接口函数表的分析和验证

小乖他爹:方舟编译器学习笔记24 以一维数组为例看MAPLE IR中存储访问

小乖他爹:方舟编译器学习笔记25 MAPLE IR中的field-ID




三、方舟开源目录简介
此次开源所放出来的一级目录主要六个:

1、build目录:该目录下主要是环境设置脚本,和一些build所用的Makefile。

2、doc目录:本次发布的几个文档,具体内容介绍见 文档导读 。

3、license目录:许可文件。

4、samples目录:示例程序目录,本次发布共公开了六个示例程序。

5、src目录:本次发布所公开的源码目录。

6、tools目录:为编译和使用过程中所用到的其他工具所预留的目录,该目录后续将存放llvm、gn、ninja。

我们所关注的源码,是位于src目录之下。src目录之下又有12个文件夹:

1、bin目录:该目录之下是四个可执行文件,其中除了maple之外的三个可执行文件,都要在build的时候copy到out/bin目录之下。

2、third_party目录:该目录之下存放了第三方库zlib。

3、deplibs目录:该目录之下存放了四个库,应该是编译的时候需要依赖的。

其中的libmempool.a、libmplphase.a和libmaple_driverutil.a是编译maple所需要的,但是src目录之下的mempool目录、mpl_phase目录、mpl_util目录都只有头文件,所以直接在源码里附上这几个库。

4、mempool目录:推测应该是内存池相关的代码,但是只有头文件,没有源文件。

5、mpl_phase目录:推测是maple的phase的基本框架的代码,不包含具体的phase的代码。该目录只有头文件,没有源文件。关于phase,doc目录有两个关于phase的文档,可以从文档中获取一部分信息。

6、mpl_util目录:推测是maple需要的一些util,字符串、log、计时器、版本等内容。

7、huawei_secure_c目录:是一些安全代码,主要字符串操作、输入输出等,具体到函数就是str_cat_s、str_cpy_s等。

8、maple_driver目录:这是maple可执行程序的主要源码所在的位置,它会调用其他的maple_开头的目录的部分内容。从其BUILD.gn中可以看到:

另外,该目录之下的src/maple.cpp中的main函数,是maple可执行程序的入口。我们前文也提到过maple是out/bin目录下面的四个可执行程序中唯一一个根据源码编译出来的,所以我们要分析方舟的程序,绕不开这个目录以及这个入口点。

9、maple_ipa目录:该目录是interleaved_manager和module_phase_manager的相关代码。phase的文档中对这块都有介绍:“PhaseManager负责phase的创建、管理和运行。与phase对应,有ModulePhaseManager和MeFuncPhaseManager两类。InterleavedManager负责phase manager的创建、管理和运行。通过调用AddPhases接口,它将创建一个对应类型的phase manager并添加进MapleVector中, 同时该phase manager相应的phase注册、添加也会自动被触发。”可以理解为ModulePhase类的phase的运行框架部分。

10、maple_ir目录:该目录是针对maple的ir的基本操作的相关代码,与LLVM针对ir的基本操作类似。主要是对IR进行基本的分析,获取ir所要表达的信息。为之后的优化作准备。

11、maple_me目录:该目录包含了有关MeFuncPhase类别的phase的框架及其具体内容,这是phase相关的一部分。所有的具体的MeFuncPhase的子类,实现都在该目录之下。

12、mpl2mpl目录:该目录包含了一些从maple ir到maple ir的转换,这种转换都是为了后续的me做准备。该目录下的主题内容是ModulePhase类别的phase的具体实现。










这是真正的干货,知乎上看似大神很多,能像这样态度琢磨的屈指可数,而且人家是真的去参加了开源线下学术交流的,键盘侠拿几个跳梁小丑的文章说事真的很蠢。
这是真正的干货,知乎上看似大神很多,能像这样态度琢磨的屈指可数,而且人家是真的去参加了开源线下学术交流的,键盘侠拿几个跳梁小丑的文章说事真的很蠢。
亮了(19)
回复
查看评论(4)
引用 @曼联名宿范佩西 发表的:
只看此人
那看来支付宝团队是太闲了才出来辟谣的
那看来支付宝团队是太闲了才出来辟谣的
你去看看支付宝的知乎账号看他闲不闲?你们公司的自媒体账号很忙吗?还团队?
你去看看支付宝的知乎账号看他闲不闲?你们公司的自媒体账号很忙吗?还团队?
亮了(3)
回复

引用内容由于违规已被删除

接着吹,相比于手机,deepin可是实实在在的存在国产自主桌面操作系统,商用发行版,怎么没人这么吹。华为不仅吹自己还明里暗里贬低国内厂商。
接着吹,相比于手机,deepin可是实实在在的存在国产自主桌面操作系统,商用发行版,怎么没人这么吹。华为不仅吹自己还明里暗里贬低国内厂商。
亮了(0)
回复
查看评论(1)
引用 @星空若是 发表的:
只看此人
你错了 先点灭再❌❌
你错了 先点灭再❌❌

你真是个带预言家

你真是个带预言家

亮了(11)
回复
查看评论(1)
引用 @恋才隐 发表的:
只看此人
demo都是动画,还指望什么
demo都是动画,还指望什么
你到底有没有看我在说什么
你到底有没有看我在说什么
亮了(2)
回复
查看评论(1)
引用 @就问你还有sei 发表的:
只看此人
这是真正的干货,知乎上看似大神很多,能像这样态度琢磨的屈指可数,而且人家是真的去参加了开源线下学术交流的,键盘侠拿几个跳梁小丑的文章说事真的很蠢。
这是真正的干货,知乎上看似大神很多,能像这样态度琢磨的屈指可数,而且人家是真的去参加了开源线下学术交流的,键盘侠拿几个跳梁小丑的文章说事真的很蠢。
大神确实多,看有些什么前端工程师都在猛踩方舟编译器了,且不说前端后端的差距,这可是编译器,你好歹是个C/C++大佬啊。
大神确实多,看有些什么前端工程师都在猛踩方舟编译器了,且不说前端后端的差距,这可是编译器,你好歹是个C/C++大佬啊。
亮了(3)
回复
引用 @薛茗之 发表的:
只看此人

一、部分视频研讨

方舟编译器源码初探

[media]url=https://www.bilibili.com/video/av66296736/;[/media]

方舟编译器源码深探之一

[media]url=https://www.bilibili.com/video/av66760612/;[/media]

二、专栏:方舟编译器学习笔记

https://zhuanlan.zhihu.com/openarkcompiler

作者:小乖他爹链接:https://www.zhihu.com/question/343667346/answer/829971679来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小乖他爹:方舟编译器学习笔记1:方舟相关资料

小乖他爹:方舟编译器学习笔记2:源码编译

小乖他爹:方舟编译器学习笔记3 方舟可执行文件简介

小乖他爹:方舟编译器学习笔记4 文档导读

小乖他爹:方舟编译器学习笔记5 方舟开始接受代码合并请求

小乖他爹:方舟编译器学习笔记6 方舟开源目录简介

小乖他爹:方舟编译器学习笔记7 对java2jar及方舟工具链的进一步分析

小乖他爹:方舟编译器学习笔记8 工具链可运行(helloworld编译成功)

小乖他爹:方舟编译器学习笔记9 测试用例编译过程的试优化

小乖他爹:[方舟动态]方舟编译器开源技术沙龙见闻

小乖他爹:[方舟动态]上海方舟编译器开源代码学习讨论会成功举办

小乖他爹:方舟编译器学习笔记10 线下活动交流后的思考

小乖他爹:方舟编译器学习笔记11 IR设计文档中的IR总体设计思想

小乖他爹:方舟编译器学习笔记12 方舟编译器的phase

小乖他爹:方舟编译器学习笔记13 方舟编译器phase相关类的关系辨析

小乖他爹:方舟编译器学习笔记14 DriverRunner源码分析

小乖他爹:方舟编译器学习笔记15 DriverRunner的调用关系分析与编译工具链的反思

小乖他爹:方舟编译器学习笔记16 MapleCombCompiler与phase体系的代码对照

小乖他爹:方舟编译器学习笔记17 phase的实现和使用

小乖他爹:方舟编译器学习笔记18 Compiler及其子类

小乖他爹:方舟编译器学习笔记19 方舟编译器IR基本类型与LLVM IR基本类型的对比

小乖他爹:方舟编译器学习笔记20 方舟编译器的IR结构和LLVM的IR结构对比

小乖他爹:方舟编译器学习笔记21 MAPLE IR设计的指导论文——Fred Chow论文阅读

小乖他爹:方舟编译器学习笔记22 MAPLE IR和LLVM IR中module层面的信息对比

小乖他爹:方舟编译器学习笔记23 虚函数表和接口函数表的分析和验证

小乖他爹:方舟编译器学习笔记24 以一维数组为例看MAPLE IR中存储访问

小乖他爹:方舟编译器学习笔记25 MAPLE IR中的field-ID

三、方舟开源目录简介此次开源所放出来的一级目录主要六个:1、build目录:该目录下主要是环境设置脚本,和一些build所用的Makefile。2、doc目录:本次发布的几个文档,具体内容介绍见 文档导读 。3、license目录:许可文件。4、samples目录:示例程序目录,本次发布共公开了六个示例程序。5、src目录:本次发布所公开的源码目录。6、tools目录:为编译和使用过程中所用到的其他工具所预留的目录,该目录后续将存放llvm、gn、ninja。我们所关注的源码,是位于src目录之下。src目录之下又有12个文件夹:1、bin目录:该目录之下是四个可执行文件,其中除了maple之外的三个可执行文件,都要在build的时候copy到out/bin目录之下。2、third_party目录:该目录之下存放了第三方库zlib。3、deplibs目录:该目录之下存放了四个库,应该是编译的时候需要依赖的。其中的libmempool.a、libmplphase.a和libmaple_driverutil.a是编译maple所需要的,但是src目录之下的mempool目录、mpl_phase目录、mpl_util目录都只有头文件,所以直接在源码里附上这几个库。4、mempool目录:推测应该是内存池相关的代码,但是只有头文件,没有源文件。5、mpl_phase目录:推测是maple的phase的基本框架的代码,不包含具体的phase的代码。该目录只有头文件,没有源文件。关于phase,doc目录有两个关于phase的文档,可以从文档中获取一部分信息。6、mpl_util目录:推测是maple需要的一些util,字符串、log、计时器、版本等内容。7、huawei_secure_c目录:是一些安全代码,主要字符串操作、输入输出等,具体到函数就是str_cat_s、str_cpy_s等。8、maple_driver目录:这是maple可执行程序的主要源码所在的位置,它会调用其他的maple_开头的目录的部分内容。从其BUILD.gn中可以看到:另外,该目录之下的src/maple.cpp中的main函数,是maple可执行程序的入口。我们前文也提到过maple是out/bin目录下面的四个可执行程序中唯一一个根据源码编译出来的,所以我们要分析方舟的程序,绕不开这个目录以及这个入口点。9、maple_ipa目录:该目录是interleaved_manager和module_phase_manager的相关代码。phase的文档中对这块都有介绍:“PhaseManager负责phase的创建、管理和运行。与phase对应,有ModulePhaseManager和MeFuncPhaseManager两类。InterleavedManager负责phase manager的创建、管理和运行。通过调用AddPhases接口,它将创建一个对应类型的phase manager并添加进MapleVector中, 同时该phase manager相应的phase注册、添加也会自动被触发。”可以理解为ModulePhase类的phase的运行框架部分。10、maple_ir目录:该目录是针对maple的ir的基本操作的相关代码,与LLVM针对ir的基本操作类似。主要是对IR进行基本的分析,获取ir所要表达的信息。为之后的优化作准备。11、maple_me目录:该目录包含了有关MeFuncPhase类别的phase的框架及其具体内容,这是phase相关的一部分。所有的具体的MeFuncPhase的子类,实现都在该目录之下。12、mpl2mpl目录:该目录包含了一些从maple ir到maple ir的转换,这种转换都是为了后续的me做准备。该目录下的主题内容是ModulePhase类别的phase的具体实现。

一、部分视频研讨

方舟编译器源码初探

[media]url=https://www.bilibili.com/video/av66296736/;[/media]

方舟编译器源码深探之一

[media]url=https://www.bilibili.com/video/av66760612/;[/media]

二、专栏:方舟编译器学习笔记

https://zhuanlan.zhihu.com/openarkcompiler


作者:小乖他爹
链接:https://www.zhihu.com/question/343667346/answer/829971679
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小乖他爹:方舟编译器学习笔记1:方舟相关资料

小乖他爹:方舟编译器学习笔记2:源码编译

小乖他爹:方舟编译器学习笔记3 方舟可执行文件简介

小乖他爹:方舟编译器学习笔记4 文档导读

小乖他爹:方舟编译器学习笔记5 方舟开始接受代码合并请求

小乖他爹:方舟编译器学习笔记6 方舟开源目录简介

小乖他爹:方舟编译器学习笔记7 对java2jar及方舟工具链的进一步分析

小乖他爹:方舟编译器学习笔记8 工具链可运行(helloworld编译成功)

小乖他爹:方舟编译器学习笔记9 测试用例编译过程的试优化

小乖他爹:[方舟动态]方舟编译器开源技术沙龙见闻

小乖他爹:[方舟动态]上海方舟编译器开源代码学习讨论会成功举办

小乖他爹:方舟编译器学习笔记10 线下活动交流后的思考

小乖他爹:方舟编译器学习笔记11 IR设计文档中的IR总体设计思想

小乖他爹:方舟编译器学习笔记12 方舟编译器的phase

小乖他爹:方舟编译器学习笔记13 方舟编译器phase相关类的关系辨析

小乖他爹:方舟编译器学习笔记14 DriverRunner源码分析

小乖他爹:方舟编译器学习笔记15 DriverRunner的调用关系分析与编译工具链的反思

小乖他爹:方舟编译器学习笔记16 MapleCombCompiler与phase体系的代码对照

小乖他爹:方舟编译器学习笔记17 phase的实现和使用

小乖他爹:方舟编译器学习笔记18 Compiler及其子类

小乖他爹:方舟编译器学习笔记19 方舟编译器IR基本类型与LLVM IR基本类型的对比

小乖他爹:方舟编译器学习笔记20 方舟编译器的IR结构和LLVM的IR结构对比

小乖他爹:方舟编译器学习笔记21 MAPLE IR设计的指导论文——Fred Chow论文阅读

小乖他爹:方舟编译器学习笔记22 MAPLE IR和LLVM IR中module层面的信息对比

小乖他爹:方舟编译器学习笔记23 虚函数表和接口函数表的分析和验证

小乖他爹:方舟编译器学习笔记24 以一维数组为例看MAPLE IR中存储访问

小乖他爹:方舟编译器学习笔记25 MAPLE IR中的field-ID




三、方舟开源目录简介
此次开源所放出来的一级目录主要六个:

1、build目录:该目录下主要是环境设置脚本,和一些build所用的Makefile。

2、doc目录:本次发布的几个文档,具体内容介绍见 文档导读 。

3、license目录:许可文件。

4、samples目录:示例程序目录,本次发布共公开了六个示例程序。

5、src目录:本次发布所公开的源码目录。

6、tools目录:为编译和使用过程中所用到的其他工具所预留的目录,该目录后续将存放llvm、gn、ninja。

我们所关注的源码,是位于src目录之下。src目录之下又有12个文件夹:

1、bin目录:该目录之下是四个可执行文件,其中除了maple之外的三个可执行文件,都要在build的时候copy到out/bin目录之下。

2、third_party目录:该目录之下存放了第三方库zlib。

3、deplibs目录:该目录之下存放了四个库,应该是编译的时候需要依赖的。

其中的libmempool.a、libmplphase.a和libmaple_driverutil.a是编译maple所需要的,但是src目录之下的mempool目录、mpl_phase目录、mpl_util目录都只有头文件,所以直接在源码里附上这几个库。

4、mempool目录:推测应该是内存池相关的代码,但是只有头文件,没有源文件。

5、mpl_phase目录:推测是maple的phase的基本框架的代码,不包含具体的phase的代码。该目录只有头文件,没有源文件。关于phase,doc目录有两个关于phase的文档,可以从文档中获取一部分信息。

6、mpl_util目录:推测是maple需要的一些util,字符串、log、计时器、版本等内容。

7、huawei_secure_c目录:是一些安全代码,主要字符串操作、输入输出等,具体到函数就是str_cat_s、str_cpy_s等。

8、maple_driver目录:这是maple可执行程序的主要源码所在的位置,它会调用其他的maple_开头的目录的部分内容。从其BUILD.gn中可以看到:

另外,该目录之下的src/maple.cpp中的main函数,是maple可执行程序的入口。我们前文也提到过maple是out/bin目录下面的四个可执行程序中唯一一个根据源码编译出来的,所以我们要分析方舟的程序,绕不开这个目录以及这个入口点。

9、maple_ipa目录:该目录是interleaved_manager和module_phase_manager的相关代码。phase的文档中对这块都有介绍:“PhaseManager负责phase的创建、管理和运行。与phase对应,有ModulePhaseManager和MeFuncPhaseManager两类。InterleavedManager负责phase manager的创建、管理和运行。通过调用AddPhases接口,它将创建一个对应类型的phase manager并添加进MapleVector中, 同时该phase manager相应的phase注册、添加也会自动被触发。”可以理解为ModulePhase类的phase的运行框架部分。

10、maple_ir目录:该目录是针对maple的ir的基本操作的相关代码,与LLVM针对ir的基本操作类似。主要是对IR进行基本的分析,获取ir所要表达的信息。为之后的优化作准备。

11、maple_me目录:该目录包含了有关MeFuncPhase类别的phase的框架及其具体内容,这是phase相关的一部分。所有的具体的MeFuncPhase的子类,实现都在该目录之下。

12、mpl2mpl目录:该目录包含了一些从maple ir到maple ir的转换,这种转换都是为了后续的me做准备。该目录下的主题内容是ModulePhase类别的phase的具体实现。










这才是最专业的评价
这才是最专业的评价
亮了(1)
回复
引用 @enchanterwu 发表的:
只看此人
gt那只是发布会吹?当时数码区一片秒杀845,战平855的评论我可是历历在目后来爱否直播测试,测试结果对gt不利,数码区还一堆人冷嘲热讽,我知道说到这里,肯定又有人要说爱否屁股是歪的了,没错,爱否屁股是歪的,但就那次直播测试gt来说,一点问题都没有
gt那只是发布会吹?
当时数码区一片秒杀845,战平855的评论我可是历历在目
后来爱否直播测试,测试结果对gt不利,数码区还一堆人冷嘲热讽,我知道说到这里,肯定又有人要说爱否屁股是歪的了,没错,爱否屁股是歪的,但就那次直播测试gt来说,一点问题都没有
gt太恶心了,脚踢835,不虚845。搞笑一比。
gt太恶心了,脚踢835,不虚845。搞笑一比。
亮了(14)
回复
查看评论(1)
引用 @拉轰的洋哥 发表的:
只看此人
干货没人亮,阴阳怪气的一堆
干货没人亮,阴阳怪气的一堆
b乎那种地方喷国产正向技术是最积极的。真的关心开源的都知道开源是个漫长的过程,华为的开源时间表一半都没过就开始喷了,还自诩开发者。

黑子喷的再多也没用,实际如何过两年就知道了。
b乎那种地方喷国产正向技术是最积极的。真的关心开源的都知道开源是个漫长的过程,华为的开源时间表一半都没过就开始喷了,还自诩开发者。

黑子喷的再多也没用,实际如何过两年就知道了。
亮了(8)
回复
查看评论(1)
Re:zt知乎:方舟编译器的开源达到各位的预期了吗?
虎扑游戏中心
数码综合讨论最热帖
苹果产品那些让我感觉非常恶心的地方
隔着屏幕都感觉到绝望啊
华为AI遥遥领先,全球AI企业必将以华为马首是瞻
老哥含泪赚我多少
小米14u和oppo x7u怎么选
苹果卖的贵是因为税,那华为卖的贵是因为啥?
华为11.5S发布了,谁来劝劝我
华为新平板什么水平?今天刷到博主说很有性价比?
苹果手机的内存是金子做的吗?
一支独放不是春的时代又要来了?
数码综合讨论最新帖
华为AI遥遥领先,全球AI企业必将以华为马首是瞻
小白評測能夠成功,是否說明人品並不重要?
华为11.5S发布了,谁来劝劝我
好哥哥们,有便宜宽带推荐吗
以下哪个人最恶心
又给大嘴送钱了,这两年哇为为所不多有性价比的数码产品,真香!
4000块左右的16+512,选magic6还是其他什么机型?
DXO本来是测拍照的,这几年生意不好做,顺带着连屏幕也测了,现在又开始接电池的生意了!太难了!
华为用户真的太忠诚了
现在的人撞了人还抱有侥幸心理逃跑,也不想想现在到处都是摄像头,只要想抓你,就不可能抓不到,所以不要以
热门游戏-即点即玩
无需下载,足球经理模式一键即玩
《NBA英雄》教练系统上线啦!我选好了,看看你的