zt知乎:方舟编译器的开源达到各位的预期了吗?

D
DDUDUDDUDU
楼主 (虎扑)

z
zhaolucy_22
2 楼
都不撕逼了,大概是弱鸡们战不动了 超出能力范围…

D
DDUDUDDUDU
3 楼


g
galbrin
4 楼
基本就是专业的当笑话看,吃瓜群众在沸腾

w
wangsiko
5 楼
方舟编译器开源的质量很差 知乎上很多锤的

拉风的名字肯定被抢了
6 楼
当前状态下,只谈技术不谈形势,有点想当然了。连彭林都变了…

虎扑用户899411
7 楼
这个事,相关的开发者就没一个不喷的,不过在数码区就,可见数码区的水平
黑曼瓜
8 楼
这帖子火不起来的

D
DDUDUDDUDU
9 楼
引用内容由于违规已被删除

给不明真相的群众灭灭火

虎扑用户432519
10 楼
我还记得支付宝说启动快是自己优化而不是方舟的功劳

l
lin801
11 楼
之前那个说支付宝用方舟编译后启动变快的,特么我就好奇这些人是拿钱了还是脑回路惊奇还是怎么回事。虚假宣传真是恶心的一逼!

薛茗之
12 楼
一、部分视频研讨 方舟编译器源码初探   方舟编译器源码深探之一   二、专栏:方舟编译器学习笔记 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的具体实现。


用户ID已封
13 楼
期待掀桌子

伊比利亚邓
14 楼
引用 @虎扑JR1763115044 发表的:
这个事,相关的开发者就没一个不喷的,不过在数码区就,可见数码区的水平

数码区水平有限啊😂😂🤣🤣🤣

O
OMGoal
15 楼
开发者不支持华为,华为自己活该,这事作为消费者倒是无关紧要

z
zhangsl8397
16 楼
我国企业都犯这个毛病,虚假宣传
但华为这么大体量的公司这么干,多少有点那个
类似于在路边摊吃饭碗里有头发,和到五星级吃饭碗里有头发,感觉不一样
所以一般号称自己世界顶尖的这种宣传,我多少都持怀疑态度,因为真正的顶尖不是自己说出来的。
用户ID已封
17 楼
引用内容由于违规已被删除

花粉进来喵一眼立即点击右上角红叉叉

m
macrohuge
18 楼
开源日程计划发布会上说的一清二楚,线下跟开发者们的交流活动更是接连不断,就你看的知乎回答里都有去切实交流还发系列文章跟感想的回复,有用的真正参与方舟开发的回答不看,专挑这些一蹦三尺高猴子一样瞎跳的回复陪着一起狒疼

用户ID已封
19 楼
引用 @沧古丶 发表的:
我还记得支付宝说启动快是自己优化而不是方舟的功劳

我也记得。
还有jr痛骂支付宝不识好歹。

M
Monkey_F
20 楼
引用内容由于违规已被删除

华为代表了数码区的最高水平🤣

木巷166
21 楼
方舟只是框架开源啊,明年才完整开源,八字没一撇呢,哪里得出的没有端正的态度,还是乱黑啊
j
jybanban
22 楼
引用 @galbrin 发表的:
基本就是专业的当笑话看,吃瓜群众在沸腾

这就够了啊。。赚的就是吃瓜人的感情和钱。。

我只是一只小猫咪
23 楼
这里的人都是学生买买数码玩具 真正的爆肝码农 谁有空来这里 虎扑就这个水平 别搞错了

c
chinat72
24 楼
知乎说得好,最终还是为了硬件产品卖的更好,比如鸿蒙之于智慧屏

S
Staneven
25 楼
引用 @沧古丶 发表的:
我还记得支付宝说启动快是自己优化而不是方舟的功劳

支付宝:我太难了

余大嘴
26 楼


k
kuzurui
27 楼
引用 @lin801 发表的:
之前那个说支付宝用方舟编译后启动变快的,特么我就好奇这些人是拿钱了还是脑回路惊奇还是怎么回事。虚假宣传真是恶心的一逼!

阿里那么多开发者的功劳被一句话就搞没了

S
ShadowKnight001
28 楼
引用内容由于违规已被删除

我替华为“辩解”一下,目前开源的内容质量确实不高,但开发者大会明确说明了8月31日是开源编译器框架,完整的内容肯定会逐渐清理并添加上去。

A
Arnoldw
29 楼
其实非相关专业的人士就看看热闹而已

成都成都成天都堵
30 楼
正常 当年麒麟一代喷的人更多

若因为怕被喷 就不做

那估计就不是华为了
老詹就是干起
31 楼
引用 @macrohuge 发表的:
开源日程计划发布会上说的一清二楚,线下跟开发者们的交流活动更是接连不断,就你看的知乎回答里都有去切实交流还发系列文章跟感想的回复,有用的真正参与方舟开发的回答不看,专挑这些一蹦三尺高猴子一样瞎跳的回复陪着一起狒疼

顶你上去

老柴棵
32 楼
引用 @用户ID已封 发表的:
花粉进来喵一眼立即点击右上角红叉叉

你错了,反手就是一个举报+点灭

t
tankou
33 楼
开源有问题,那就直接骂咯,这么大公司总得言而有信

我骑必胜cav
34 楼
有一说一,不要只看批评的评论。
方舟不是ppt(看样子也不是完成品),开源的是部分代码,已经有大佬花了一两个星期去跑,能跑起来,而不是听那群,看到代码瑕疵就敲键盘带节奏。 另外,希望你们有点笔数,能投入搞这种级别的编译器,世界上也没几个公司敢这样搞,黑没问题,成品出来了别吹也别酸。 [ 此帖被我骑必胜cav在2019-09-25 10:45修改 ]

贰号科怀伦纳德
35 楼
引用 @macrohuge 发表的:
开源日程计划发布会上说的一清二楚,线下跟开发者们的交流活动更是接连不断,就你看的知乎回答里都有去切实交流还发系列文章跟感想的回复,有用的真正参与方舟开发的回答不看,专挑这些一蹦三尺高猴子一样瞎跳的回复陪着一起狒疼

关键是支付宝那个事,我去搜了一下,华为没说是用了方舟啊。看高亮这些回复我以为是华为碰瓷支付宝呢。

大雄的梦想
36 楼
引用 @lin801 发表的:
之前那个说支付宝用方舟编译后启动变快的,特么我就好奇这些人是拿钱了还是脑回路惊奇还是怎么回事。虚假宣传真是恶心的一逼!

支付宝都不得不站出来澄清说和方舟没关系

贰号科怀伦纳德
37 楼
引用 @沧古丶 发表的:
我还记得支付宝说启动快是自己优化而不是方舟的功劳

华为也没有说是方舟的功劳啊

q
quuqquuq
38 楼
华为已经是“开源届”的笑话了吧,从鸿蒙os到方舟编译器
g
gaigai3
39 楼
人设,品牌形象,华为也没办法

i
ihaaae
40 楼
引用 @macrohuge 发表的:
开源日程计划发布会上说的一清二楚,线下跟开发者们的交流活动更是接连不断,就你看的知乎回答里都有去切实交流还发系列文章跟感想的回复,有用的真正参与方舟开发的回答不看,专挑这些一蹦三尺高猴子一样瞎跳的回复陪着一起狒疼

不是说9月15完全开源吗?完全开源在哪呢?
恋才隐
41 楼
引用 @ShadowKnight001 发表的:
我替华为“辩解”一下,目前开源的内容质量确实不高,但开发者大会明确说明了8月31日是开源编译器框架,完整的内容肯定会逐渐清理并添加上去。

demo都是动画,还指望什么

贰号科怀伦纳德
42 楼
引用 @lin801 发表的:
之前那个说支付宝用方舟编译后启动变快的,特么我就好奇这些人是拿钱了还是脑回路惊奇还是怎么回事。虚假宣传真是恶心的一逼!

起源应该是知乎的这个问题吧?这个问题是华为或者华为员工提的吗?跟你一样只是狗屁都不知道吃瓜群众罢了,搞得那么气愤。

z
zhangsl8397
43 楼
引用 @macrohuge 发表的:
开源日程计划发布会上说的一清二楚,线下跟开发者们的交流活动更是接连不断,就你看的知乎回答里都有去切实交流还发系列文章跟感想的回复,有用的真正参与方舟开发的回答不看,专挑这些一蹦三尺高猴子一样瞎跳的回复陪着一起狒疼

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

无心丶恋
44 楼
首先说方舟和支付宝的,华为官方目前貌似之说emui经过方舟编译,并没有说过其他应用用过,今年四季度会有其他应用加入。
再就是编译器,说的好像是8月底开放框架,明年开源完整编译器工具链,具体是什么样的,明年出来或出不来再喷不迟。
数码区水平也确实是不行,就连喷的点也只是抓住支付宝这个,一点专业性的东西也没有。
e
enchanterwu
45 楼
引用 @lin801 发表的:
之前那个说支付宝用方舟编译后启动变快的,特么我就好奇这些人是拿钱了还是脑回路惊奇还是怎么回事。虚假宣传真是恶心的一逼!

难不成忘了去年吹的可以秒杀845的gt970?

f
fffffff.
46 楼
引用内容由于违规已被删除

不是水平有限 是水军太多 黑的都能说成白的

1
123de123
47 楼
引用 @zhangsl8397 发表的:
这是他那个知乎回答下面的东西,我看和楼主发的一样的啊,都是批评,你说的那些在哪里呢?

https://www.zhihu.com/answer/808727474,这个5k赞的看看?

m
macrohuge
48 楼
引用 @薛茗之 发表的:
一、部分视频研讨 方舟编译器源码初探   方舟编译器源码深探之一   二、专栏:方舟编译器学习笔记 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的具体实现。


看看,你发的这个果然没人理

g
gemini1983
49 楼
本来鸿蒙也好,方舟也好,都不是华为的本职工作。
但凡bat中间有一家能在编译器,os这块有和google有一抗之力,华为用得着费力不讨好去搞这些么?本来华为本质上只是一家通信公司而已。搞好通信这块就能轻轻松松赚钱不好么。

瞎几把取一个吧
50 楼
引用 @薛茗之 发表的:
一、部分视频研讨 方舟编译器源码初探   方舟编译器源码深探之一   二、专栏:方舟编译器学习笔记 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的具体实现。


干货没人亮,阴阳怪气的一堆

l
lin801
51 楼
引用内容由于违规已被删除

我特么说了华为或者它员工了吗?碰瓷支付宝吹启动速度不是虚假宣传?还有这么脑残的行为我还不能说了,还有我特么也是码农,至少不是跟你一样狗屁都不知道就在这里说别人。还有我也在知乎上喷过这个,真当写代码的只有华为会吗!

无心丶恋
52 楼
引用 @enchanterwu 发表的:
难不成忘了去年吹的可以秒杀845的gt970?

100级的号就这水平?哪一家发布会不吹。苹果吹夜景、红米吹芯片和810相当,翻车没有,恶心不恶心?不都是一个套路吗,有啥可惊讶的。

支付宝那个华为官方有说过是方舟编译后快的吗?还扯到虚假宣传了,网友自己说的,跟虚假宣传有个啥关系?这都是什么脑回路。
s
saber0_0
53 楼
引用 @用户ID已封 发表的:
我也记得。
还有jr痛骂支付宝不识好歹。

……我服了

s
saber0_0
54 楼
引用 @用户ID已封 发表的:
花粉进来喵一眼立即点击右上角红叉叉

顺便还点了举报

曼联名宿范佩西
55 楼
引用内容由于违规已被删除

“粉丝行为,请勿上升到品牌层面”🐶(咋不见华为自己出来辟谣)

小希拉
56 楼
引用内容由于违规已被删除

数码区除了日常的小米华为倒闭,还会什么? 连个 holle world 都写不出,却在那里讨论技术,看着真想笑
我骑必胜cav
57 楼
引用 @瞎几把取一个吧 发表的:
干货没人亮,阴阳怪气的一堆

看楼主发帖的用意,不要太明显。
说实话,方舟和鸿蒙暂时没有华为公关吹起来的美好,但是花了足够的人力和财力去搞,把这些底层的东西做完善了,前景不可谓不好。
然而有干货没卵用,他们只相信口水,带节奏和跟节奏的,非蠢既坏。
1
123de123
58 楼
引用 @曼联名宿范佩西 发表的:
“粉丝行为,请勿上升到品牌层面”🐶(咋不见华为自己出来辟谣)

这都要出来澄清,那国内这么多上市公司每天不用干事了,撕逼就完事了。

小王9
59 楼
引用 @无心丶恋 发表的:
首先说方舟和支付宝的,华为官方目前貌似之说emui经过方舟编译,并没有说过其他应用用过,今年四季度会有其他应用加入。
再就是编译器,说的好像是8月底开放框架,明年开源完整编译器工具链,具体是什么样的,明年出来或出不来再喷不迟。
数码区水平也确实是不行,就连喷的点也只是抓住支付宝这个,一点专业性的东西也没有。

你能理解连hello word都跑不了是啥意思吗
老师的杰伦
60 楼
时间会证明的 一个编译器没那么容易成功 不过黑子的嘴脸真的搞笑

m
macrohuge
61 楼
引用 @zhangsl8397 发表的:
这是他那个知乎回答下面的东西,我看和楼主发的一样的啊,都是批评,你说的那些在哪里呢?

本帖9楼就有参加方舟编译器线下活动的知友写的长篇文章链接,还是那句话,你们就是有用的回答不看,光跟着废物回答一起狒疼

格策反
62 楼
引用 @gemini1983 发表的:
本来鸿蒙也好,方舟也好,都不是华为的本职工作。
但凡bat中间有一家能在编译器,os这块有和google有一抗之力,华为用得着费力不讨好去搞这些么?本来华为本质上只是一家通信公司而已。搞好通信这块就能轻轻松松赚钱不好么。

华为何德何能代表国内os水平,能吹造势是第一。

老师的杰伦
63 楼
引用 @木巷166 发表的:
方舟只是框架开源啊,明年才完整开源,八字没一撇呢,哪里得出的没有端正的态度,还是乱黑啊

他们看到知乎有人喷,于是沸腾了,居然拿支付宝来黑华为好像华为要靠着支付宝出名一样 真的搞笑

曼联名宿范佩西
64 楼
引用 @123de123 发表的:
这都要出来澄清,那国内这么多上市公司每天不用干事了,撕逼就完事了。

那看来支付宝团队是太闲了才出来辟谣的

罗罗CCC
65 楼
引用内容由于违规已被删除

行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好

帝王星三号
66 楼
引用 @薛茗之 发表的:
一、部分视频研讨 方舟编译器源码初探   方舟编译器源码深探之一   二、专栏:方舟编译器学习笔记 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的具体实现。


发这些有毛用,想黑的人会选择性无视
格策反
67 楼
引用 @帝王星三号 发表的:
发这些有毛用,想黑的人会选择性无视

他这就是现在编译器框架代码分析,和应用差十万八千里。

z
zhangsl8397
68 楼
引用 @macrohuge 发表的:
本帖9楼就有参加方舟编译器线下活动的知友写的长篇文章链接,还是那句话,你们就是有用的回答不看,光跟着废物回答一起狒疼

我承认,我自己不懂这方面的东西
但你的意思是,我发的知乎上这些批评者都是废物,就那一个人是专家,是吧
那我没话说。我也没有黑华为的意思。随便你咯
我骑必胜cav
69 楼
引用 @格策反 发表的:
华为何德何能代表国内os水平,能吹造势是第一。

你懂鸿蒙的意义吗?
不是什么国内第一操作系统,是你老美要用谷歌制裁我不用安卓,我拿出鸿蒙出来:不要我用可以,我用自家的。正因为担心鸿蒙起来影响谷歌在国内的地位,于是老美在安卓这里妥协了。
m
miniBONAWU
70 楼
引用 @123de123 发表的:
https://www.zhihu.com/answer/808727474,这个5k赞的看看?

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

德国烤肠
71 楼
开源了9w行? 现代编译器大概400-800w行,体会下...

就问你还有sei
72 楼
引用 @zhangsl8397 发表的:
这是他那个知乎回答下面的东西,我看和楼主发的一样的啊,都是批评,你说的那些在哪里呢?

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

e
enchanterwu
74 楼
引用内容被灭过多已被折叠

gt那只是发布会吹?
当时数码区一片秒杀845,战平855的评论我可是历历在目
后来爱否直播测试,测试结果对gt不利,数码区还一堆人冷嘲热讽,我知道说到这里,肯定又有人要说爱否屁股是歪的了,没错,爱否屁股是歪的,但就那次直播测试gt来说,一点问题都没有

用户1031610088
75 楼
引用 @用户ID已封 发表的:
花粉进来喵一眼立即点击右上角红叉叉

你错了 先点灭再❌❌

我骑必胜cav
76 楼
引用 @罗罗CCC 发表的:
行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好

华为请了世界顶尖大佬来做这个,你跟我说985边角料?
一个偏硬件的公司,逐渐进军硬件/软件的中间层级,最后搞到软件级别,你阿里腾讯软件牛皮,你也拿出PPT来看啊,更何况还不是PPT。
贰号科怀伦纳德
77 楼
引用 @曼联名宿范佩西 发表的:
那看来支付宝团队是太闲了才出来辟谣的

在同一时间段,华为介绍了方舟编译器这个项目,支付宝也优化了自家APP。在大家有所联想和误解难道不是很正常?支付宝作为当事人知道这个和方舟编译器没有半毛钱关系,出来辟谣有什么别的涵义吗?
你的意思就是说,支付宝辟谣了,这个造谣的人一定就是华为。

Z
ZicoSs
78 楼
引用 @罗罗CCC 发表的:
行业内的人都知道华为硬件很牛逼,但是软件很垃圾,也就数码区一堆外行指望华为造系统造编译器,真的搞笑,说句不好听的,华为每年校招从各大985招的那堆中下游边角料根本就没那个能力把软件做好

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

就问你还有sei
79 楼
引用 @薛茗之 发表的:
一、部分视频研讨 方舟编译器源码初探   方舟编译器源码深探之一   二、专栏:方舟编译器学习笔记 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
123de123
80 楼
引用 @曼联名宿范佩西 发表的:
那看来支付宝团队是太闲了才出来辟谣的

你去看看支付宝的知乎账号看他闲不闲?你们公司的自媒体账号很忙吗?还团队?

格策反
81 楼
引用 @我骑必胜cav 发表的:
你懂鸿蒙的意义吗?
不是什么国内第一操作系统,是你老美要用谷歌制裁我不用安卓,我拿出鸿蒙出来:不要我用可以,我用自家的。正因为担心鸿蒙起来影响谷歌在国内的地位,于是老美在安卓这里妥协了。

接着吹,相比于手机,deepin可是实实在在的存在国产自主桌面操作系统,商用发行版,怎么没人这么吹。华为不仅吹自己还明里暗里贬低国内厂商。

S
ShadowKnight001
82 楼
引用 @恋才隐 发表的:
demo都是动画,还指望什么

你到底有没有看我在说什么

曼联名宿范佩西
83 楼
引用 @用户1031610088 发表的:
你错了 先点灭再❌❌

你真是个带预言家

我骑必胜cav
84 楼
引用 @就问你还有sei 发表的:
这是真正的干货,知乎上看似大神很多,能像这样态度琢磨的屈指可数,而且人家是真的去参加了开源线下学术交流的,键盘侠拿几个跳梁小丑的文章说事真的很蠢。

大神确实多,看有些什么前端工程师都在猛踩方舟编译器了,且不说前端后端的差距,这可是编译器,你好歹是个C/C++大佬啊。
虎扑用户849468
85 楼
引用 @薛茗之 发表的:
一、部分视频研讨 方舟编译器源码初探   方舟编译器源码深探之一   二、专栏:方舟编译器学习笔记 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的具体实现。


这才是最专业的评价

格策反
86 楼
引用 @enchanterwu 发表的:
gt那只是发布会吹?
当时数码区一片秒杀845,战平855的评论我可是历历在目
后来爱否直播测试,测试结果对gt不利,数码区还一堆人冷嘲热讽,我知道说到这里,肯定又有人要说爱否屁股是歪的了,没错,爱否屁股是歪的,但就那次直播测试gt来说,一点问题都没有

gt太恶心了,脚踢835,不虚845。搞笑一比。

m
maur
87 楼
引用 @瞎几把取一个吧 发表的:
干货没人亮,阴阳怪气的一堆

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

黑子喷的再多也没用,实际如何过两年就知道了。
贰号科怀伦纳德
88 楼
引用 @大雄的梦想 发表的:
支付宝都不得不站出来澄清说和方舟没关系

挺会添油加醋啊,隐隐约约有听说啦。

1
123de123
89 楼
引用 @miniBONAWU 发表的:
知乎最神奇的群体:匿名用户

那你多看几个回答行吗?这么懒的吗?

我骑必胜cav
90 楼
引用 @格策反 发表的:
接着吹,相比于手机,deepin可是实实在在的存在国产自主桌面操作系统,商用发行版,怎么没人这么吹。华为不仅吹自己还明里暗里贬低国内厂商。

我吹锤子了?华为公关和华为技术牛皮矛盾吗?
PPT骗过了老美,骗过了众科技公司,唯独骗不过你jrs,那确实牛皮。
刘思杨
91 楼
引用 @伊比利亚邓 发表的:
数码区水平有限啊😂😂🤣🤣🤣

海狗太多

北溟之鱼
92 楼
说好不打脸的,提这事干嘛,对了还有鸿蒙呢,要灭天灭地的。

皂白
93 楼
大多数人对于这些问题都是无知的,那些说看笑话的连个专业点的词汇都说不出来。

1
123de123
94 楼
引用 @贰号科怀伦纳德 发表的:
在同一时间段,华为介绍了方舟编译器这个项目,支付宝也优化了自家APP。在大家有所联想和误解难道不是很正常?支付宝作为当事人知道这个和方舟编译器没有半毛钱关系,出来辟谣有什么别的涵义吗?
你的意思就是说,支付宝辟谣了,这个造谣的人一定就是华为。

你被点灭的太狠了,兄弟,真实的一批

h
hao娘
95 楼
引用内容由于违规已被删除

但嗨军无限
贰号科怀伦纳德
96 楼
引用 @kuzurui 发表的:
阿里那么多开发者的功劳被一句话就搞没了

强行被你搞没了

s
syambosin
97 楼
引用内容被灭过多已被折叠

所以你的观点是恶心阿,跟两层楼的观点一致,等级水平要怎样才行呢?

华丽阁楼
98 楼
引用 @lin801 发表的:
之前那个说支付宝用方舟编译后启动变快的,特么我就好奇这些人是拿钱了还是脑回路惊奇还是怎么回事。虚假宣传真是恶心的一逼!

信仰的力量……
贰号科怀伦纳德
99 楼
引用 @123de123 发表的:
你被点灭的太狠了,兄弟,真实的一批

我不过梳理了一下他的逻辑,戳到了痛处。

刘思杨
100 楼
引用 @123de123 发表的:
https://www.zhihu.com/answer/808727474,这个5k赞的看看?

这也太沸腾了