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

栏目: 服务器 · 编程工具 · 发布时间: 5年前

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

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

但是RegionPass有一些特殊之处,这主要是由于Region和Module、Function、Loop、BasicBlock的差别造成的。众所周知,Module、Function、Loop、BasicBlock都是LLVM IR的基本结构,相对而言比较容易理解。尤其是Module、Function、BasicBlock这三层结构,接触过LLVM IR的都比较熟悉。而Region则不能算是一个基本结构,它的定义为:

Region is a connected subgraph of a control flow graph that has exactly two connections to the remaining graph. It can be used to analyze or optimize parts of the control flow graph.(来自: RegionInfo.h 的注释)

翻译过来就是:Region是一个控制流图的连接的子图,它和剩余的部分有两个连接。它可以被用来分析和优化控制流图中的部分内容。

所以,一个简单的Region和剩余的图有两个边的连接,一个是入点,一个是出点。Region的入点是进入Region之后的第一个BasicBlock;Region的出点是离开Region之后的第一个BasicBlock。Region的入点BasicBlock主导Region的所有BasicBlock;Region的出点BasicBlock后置主导Region的所有BasicBlock。

来一起看个具体的实例:

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

图中是Region的实例,图中共有两个Region,一个A一个B。这里的出点还容易让有点迷惑,需要针对图仔细揣摩一下。A是B的父Region。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

疯狂科学家大本营

疯狂科学家大本营

Bei Er Fei Ao Er / 本书翻译组 译、黄晓庆 周宇煜 张为民 审译 / Science Press / 2012-1-5 / 48.00元

美国最棒的创意工场不是贝尔实验室,不是硅谷,也不是麻省理工学院的媒体实验室,而是由五角大楼领导的绝密军事机构DARPA——国防高级研究计划局。DARPA是由美国前总统艾森豪威尔建立的军事部门,创建的目的是为了回应苏联的太空计划。 虽然DARPA属于政府机构,但是没有冷冰 冰的氛围和官僚做派,那里的科学家偏爱牛仔裤和运动鞋。不过他们最爱的还是在各个领域寻找颠覆性创意。从航空航天、IT,到能源领......一起来看看 《疯狂科学家大本营》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具