自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SHINING的博客

不忘初心,方得始终。

原创 方舟编译器学习笔记分类与导读

方舟学习笔记系列,从方舟开源到现在,已经写了50多篇,保证了每天一篇的更新频率。篇数增加之后,文章的分类以及文章之间的关系,逐渐变得复杂起来。本文将对已发表的学习笔记系列进行分类和导读,方便读者更好的理解。 1、方舟动态 本类中主要是关于方舟编译器动态的消息,包括不限于方舟的变动、线下活动见闻...

2019-10-24 08:53:52

阅读数 153

评论数 0

原创 LLVM每日谈之五十六 从RegionPass看Region

RegionPass是Pass的一个子类,和其他Pass的子类(ModulePass、FunctionPass、LoopPass、BasicBlockPass)一样,都是同样的一个模式:运行在每一个XX之上。(注:这里的XX代表着这几个Pass的针对的对象,每个都不同。FunctionPass运行...

2019-06-15 23:49:18

阅读数 201

评论数 1

转载 [技术论坛]6月22日HelloLLVM上海线下聚会

HelloLLVM和HelloGCC社区将在 2019年6月22日(周六)在上海聚会。聚会内容包含(但不限于): MLIR 是什么,要学么? 近期的编译领域的八卦 TVM Stack 前景如何?现在入还来得及么? 如何吸引新人参与GCC开发? 闪电演讲(现场排队) 时间暂定为6月22...

2019-06-15 21:59:24

阅读数 254

评论数 0

原创 深入研究Clang(十二) 可以观察Clang前端分析阶段性产物的几个命令

Clang作为整个LLVM框架下关于C、C++和Object-C的前端。其大致环节分为词法分析、预处理、语法分析、语义分析、中间代码生成几个环节。我们在阅读和修改Clang的代码的过程中,需要经常的调试代码,观察改动所带来的各个阶段所发生的改变,这就需要时刻了解各个阶段的输出。要了解各个阶段的输出...

2018-07-12 13:56:13

阅读数 1048

评论数 0

原创 LLVM每日谈之五十五 浅谈对Pass的错误认知及其原因

Pass作为LLVM的一个重要的组成部分,在LLVM IR层面和LLVM Backend层面都发挥了重要的作用。很多LLVM的使用者容易将Pass理解为LLVM IR层面的analysis和transform,而忽略了Pass在LLVM Backend层面的作用。而实际上,Pass在LLVM Ba...

2019-06-15 21:58:35

阅读数 856

评论数 0

原创 LLVM每日谈之五十四 新建后端的第二步校正(register set)

新建后端的七大步骤,在前文《LLVM后端文档解析》中进行过介绍。我们在《创建一个LLVM新后端的第一步中文档与代码的差异》和《Target Registration的更正》中,已经列出了现有文档中第一步“Create a subclass of the TargetMachine class th...

2019-06-15 21:57:33

阅读数 792

评论数 0

原创 LLVM每日谈之五十三 Target Registration的更正

前文:创建一个LLVM新后端的第一步中文档与代码的差异主要是为新后端实现了一个Target Machine,这是新建后端七个步骤的第一步。在这个步骤之后,还有一个隐含的内容,那就是将这个Target注册,好让其它的LLVM工具可以在运行时使用你新建的target。 LLVM的官方文档中,以Spa...

2019-06-15 21:56:16

阅读数 799

评论数 0

原创 LLVM每日谈之五十二 创建LLVM后端的第一步校正(target machine)

根据LLVM文档《Writing an LLVM Backend》可知道,LLVM新建一个后端需要七大步骤。前文对七大步骤和文档中其他的结构的关系也做了简单的分析。后续会逐步分析新建后端的七大步骤,并以RISC-V为目标平台,结合RISC-V的LLVM后端代码进行分析。另外,由于《Writing ...

2019-06-15 21:55:08

阅读数 524

评论数 0

转载 Modern source-to-source transformation with Clang and libTooling

原文地址:https://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling/ I couple of years ago I published a ...

2019-05-19 18:06:04

阅读数 89

评论数 0

转载 [技术论坛] 5月25日 HelloLLVM 北京线下:我们又双叒叕聚了

HelloLLVM 与 HelloGCC 社区计划于 2019年5月25日举办线下聚会。本次聚会的内容有: 丰富的茶歇(感谢金牌赞助商重德智能。硬广:他们提供工具链外包服务,有需求的话可以到时候在聚会现场直接找他们聊) 话题讨论:「大神们又在搞事情系列」之 MLIR 是什么,要学么? 技术分...

2019-05-19 12:18:33

阅读数 96

评论数 0

原创 LLVM每日谈之五十一 TargetMachine

TargetMachine及其子类: 前文介绍了TargetMachine类,我们这篇文章简单分析下TargetMachine类及其子类。TargetMachine类位于include/llvm/Target/TargetMachine.h文件之中。 TargetMachine类作为获取目标机...

2019-05-19 12:17:29

阅读数 192

评论数 0

原创 LLVM每日谈之五十 LLVM 后端文档解析3 —目标描述类

前文理清楚了六大部分、七大环节和七大步骤的对应关系。那么我们接下来要深入的去分析:Target description classes: abstract target description interfaces (代码地址:include/llvm/Target/)。 Target desc...

2019-05-19 12:16:24

阅读数 120

评论数 0

原创 LLVM每日谈之四十九 LLVM后端文档解析2

前文讲了七大环节和六大部分之间的对应关系,简单来讲就是七大环节其实对应了六大部分的第四个部分:Target-independent code generation algorithms(代码地址:lib/CodeGen)。 我们接下里再看看新建后端的时候,所做的七大步骤,对应的是LLVM后端的六...

2019-05-19 12:15:37

阅读数 124

评论数 0

原创 LLVM每日谈之四十八 LLVM后端文档解析1

之前在LLVM每日谈之四十七 LLVM后端文档解析中,介绍了后端文档中提到关于后端的六大模块、七大环节和七个步骤。前文也提到过,它们是从不同的维度去解析LLVM的后端,不同维度之间是存在各种各样的交叉关系的。在这里,简单对于三者的关系进行解析。 六大模块中第四个模块Target-independ...

2019-05-19 12:14:44

阅读数 115

评论数 0

原创 LLVM每日谈之四十七 LLVM后端文档解析

去年在HelloLLVM杭州站的活动中,我做了一个分享:LLVM后端简介。主要是从LLVM后端的几大环节上展开,简单介绍了LLVM后端。在新的芯片和指令集大火的今天,为LLVM添加一个新的后端,也成了大家比较关注的热点。 LLVM官方提供了两个关于后端的官方文档: 1、The LLVM Tar...

2019-05-13 23:25:45

阅读数 203

评论数 0

原创 LLVM每日谈之四十六 MLIR

在2019 European LLVM developers' meeting上,Tatiana Shpeisman (Google), Chris Lattner (Google)一起做了《MLIR: Multi-Level Intermediate Representation for Com...

2019-05-13 23:24:22

阅读数 443

评论数 0

原创 LLVM每日谈之四十五 LLVM IR TUTORIAL

今年的LLVM欧洲开发者会议上,在Tutorials环节,Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel Corporation)做了名为《LLVM IR Tutorial - Phis, GEPs and...

2019-05-01 21:13:07

阅读数 200

评论数 0

原创 LLVM每日谈之四十四 LLVM的别名分析

别名分析是试图决定两个指针是否指向同一块内存的一类技术,这类技术有很多种不同的算法和方法。所以,别名分析也常常被称作是指针分析。别名分析通常会返回是别名、或许是别名和不是别名等几种情况。 LLVM别名分析的核心是AliasAnalysis类。这个类提供了用户或者是LLVM系统内部使用别名分析所需...

2019-04-29 12:07:20

阅读数 151

评论数 0

原创 LLVM每日谈之四十三 LLVM的utility pass

LLVM的pass是LLVM优化的核心,除了我们经常谈到的analysis pass和transform pass,还有一类pass叫做utility pass(以LLVM8.0.0为例)。 utility pass这一类pass主要是无法按照analysis pass和transform pa...

2019-04-28 10:21:01

阅读数 145

评论数 0

原创 LLVM每日谈之四十二 一个添加pass的实例

总会有LLVM的学习者问怎么添加一个pass实例。我之前写过的一个简单的文档,但是间隔时间太久,LLVM更新很大,已经不具有实际的指导作用。 这次举一个新提交的patch为例子,可以清晰的看到如何在LLVM之中添加一个pass。 rL358607​reviews.llvm.org 这个pat...

2019-04-26 17:38:04

阅读数 169

评论数 0

提示
确定要删除当前文章?
取消 删除