IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 软件工程作业-方舟编译器学习笔记01-认识phase -> 正文阅读

[Python知识库]软件工程作业-方舟编译器学习笔记01-认识phase

上一篇是分析方舟编译器的准备阶段,这一篇开始正式开扒。
吃饭的时候看到了一篇非常好的博客↓
https://www.zhihu.com/column/c_1187372958643941376
答主ID:小菜叔叔开方舟
看着那么多代码属实不知道从哪里下手,但是看了这个知乎er的专栏感觉有思路了不少(虽然这个大大写的也比较随性,可读性不太连贯)。
简单讲讲程序通过编译器的过程。首先是编译器的前端,包括但不限于词法、句法的分析;然后是后端,包括指令的生成和优化。过一遍这几个“PHASE”后优化过的代码就是方舟编译器的结果。在这里插入图片描述图片来自知乎答主ID:小乖他爹
phase是方舟编译器里的一个独创概念,原意是阶段,时期,段落,这里应该理解为过程步骤的意思。MAPLE IR 就是由一个个的PHASE组成的优化模块。
翻看编译器源码,src/maple_phase源码目录中phase.h、phase_impl.h和phase_manager.h三个类都只有头文件,其他两个都有比较具体的代码。phase中有ModulePhase和MeFuncPhase两个大类,很多小类,包含很多优化模型和方法。
module_phases.def & me_phases.def 这两个文件里记录了所有优化方法,用于管理需要注册的phase方法。
以下摘自小乖他爹的博客《方舟编译器学习笔记12 方舟编译器的phase》↓↓
PhaseManager负责phase的创建、管理和运行。
ModulePhase和MeFuncPhase都有对应的Manager类,分别是ModulePhaseManager和MeFuncPhaseManager。
ModulePhaseManager和MeFuncPhaseManager都是PhaseManager类的子类。
ModulePhaseManager的具体代码在
src/maple_ipa/include/module_phase_manager.h
和src/maple_ipa/src/module_phase_manager.cpp
MeFuncPhaseManager的具体代码在
src/maple_me/include/me_phase_manager.h
和src/maple_me/src/me_phase_manager.cpp。
phase的Manager类主要是通过InterleavedManager来创建、管理和运行。
InterleavedManager的源码在src/maple_ipa/include/interleaved_manager.h和src/maple_ipa/src/interleaved_manager.cpp。
所以,总结一下就是InterleavedManager负责phase manager的创建、管理和运行;PhaseManager负责phase的创建、管理和运行。这是一个三级管理机制。
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
在这里插入图片描述这就是三个类与子类之间的关系。蓝色直线带箭头是子类对父类的继承关系;红色折线带箭头是管理关系,箭头指向被管理者(在代码里体现的就是对其具体的对象的调用)。
下一篇继续分析phase类,因为phase体系是基于MAPLE IR进行优化和转换工作的一个模块,跟我的学习重点息息相关。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:14:15  更:2021-10-09 16:15:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:17:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码