自定义博客皮肤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的博客

不忘初心,方得始终。

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

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

2019-06-15 23:49:18

阅读数 164

评论数 1

原创 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

阅读数 822

评论数 0

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

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

2019-06-15 21:57:33

阅读数 777

评论数 0

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

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

2019-06-15 21:56:16

阅读数 781

评论数 0

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

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

2019-06-15 21:55:08

阅读数 508

评论数 0

原创 LLVM每日谈之五十一 TargetMachine

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

2019-05-19 12:17:29

阅读数 155

评论数 0

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

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

2018-07-12 13:56:13

阅读数 951

评论数 0

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

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

2019-05-19 12:16:24

阅读数 104

评论数 0

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

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

2019-05-19 12:15:37

阅读数 101

评论数 0

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

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

2019-05-19 12:14:44

阅读数 95

评论数 0

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

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

2019-05-13 23:25:45

阅读数 156

评论数 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

阅读数 360

评论数 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

阅读数 161

评论数 0

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

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

2019-04-29 12:07:20

阅读数 117

评论数 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

阅读数 135

评论数 0

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

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

2019-04-26 17:38:04

阅读数 153

评论数 0

原创 LLVM每日谈之四十 一门介绍LLVM的课程

最近看到了UFMG的DCC888课程。在这里分享给大家,有需要的可以自己看看,个人感觉非常不错。 DCC888课程,主要是关于程序分析和优化的,其主要的内容如下图所示: 本身这门课程的内容,就是编译器相关课程。这门课程在后半部分,有一个关于LLVM的子课程,非常适合入门的学习,其内容主要如...

2019-01-11 11:45:06

阅读数 600

评论数 0

原创 LLVM每日谈之三十九 浅谈LLVM的异常处理(OSDT2018大会分享)

CSDN的ppt和图片上传很困难,放到知乎上了。 https://zhuanlan.zhihu.com/p/51915789

2018-12-08 20:47:32

阅读数 354

评论数 1

原创 LLVM每日谈之三十八 那些LLVM的博客和专栏

接触LLVM至今,已经6年多了,除了官方文档和邮件列表之外,陆陆续续的也读了一些博客和专栏,非常的不错,帮助很大。在此,将这些博客和专栏整理出来,希望对大家有帮助。 1、llvm - 韋任的維基百科 最初接触LLVM的时候,没有任何中文资料,唯一能找到的中文资料就是这个维基百科。对我帮助很大,...

2018-07-30 12:36:46

阅读数 1259

评论数 2

原创 LLVM每日谈之三十七 Brief Intro to LLVM Backend (HelloLLVM杭州站分享PPT)

今天参加了HelloLLVM在杭州的线下聚会,做了一个关于LLVM 后端的分享。旨在给对LLVM感兴趣的同学和刚接触LLVM的同学一点引导,帮助他们快速理清LLVM的后端架构。PPT如下: ....

2018-07-28 15:50:07

阅读数 644

评论数 1

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