当前位置: 首页 > news >正文

如何申请cn域名做网站长沙市网站制作

如何申请cn域名做网站,长沙市网站制作,怎么做才能让网站人气提升,公司网站域名无法解析概述 LLVM 编译器框架的核心概念是任务调用和执行 编译器开发者将IR分解为不同的处理对象,并将其处理过程实现为单独的pass类型。在编译器初始化,pass被实例化,并被添加到pass管理中 pass 管理器(pass manager) 以流水线的方式将各个独立的…

概述

LLVM 编译器框架的核心概念是任务调用和执行

编译器开发者将IR分解为不同的处理对象,并将其处理过程实现为单独的pass类型。在编译器初始化,pass被实例化,并被添加到pass管理中

pass 管理器(pass manager) 以流水线的方式将各个独立的pass 衔接起来,然后以预定义顺序遍历每个pass,根据pass实例返回值启动、停止或重复运行不同的pass

因此,LLVM pass 管理机制的主要模块包括pass、pass 管理器、pass注册及相关模块,如PassRegistry、AnalysisUsage、AnalysisResolver 等

PASS 的作用

pass 是一种编译器开发的结构化技术,用于完成编译器对象(如IR)的转换、分析或优化等功能。 pass的执行过程就是编译器对编译对象进行转换、分析和优化过程

LLVM 提供的pass 分为三类: 分析(analyis) pass、转换(transform) pass 和 工具(utility) pass

分析(analyis) pass

分析pass 复杂计算相关IR单元的高层信息,但不对其进行修改

这些信息可以被其他pass使用,或用于程序调试和可视化。简言之,分析pass 提供其他pass 需要查询的信息并提供查询接口

例如,基本别名分析(Basic Alias Analysis) pass 生成的别名分析结果可以用于后续的其他优化pass

分析pass 不仅从IR中得到有用信息,还可以通过调用其他分析pass得到信息,并将这些信息结合起来,得到IR相关的、更有价值的信息

这些分析结果可以被缓存下来,避免重复计算。如果分析的IR 被修改,原有的分析结果当然也就失效了

转换(transform) pass

转换pass 可以查询和使用分析pass 分析得到的IR高层信息,然后以某种方式改变和优化IR,并保证改变后的IR仍然合法有效

例如,激进死代码消除(Aggressive Dead Code Elimination, ADCE) pass 可根据其他分析pass的分析结构,将死代码从原来的模块中删除

工具(utility) pass

工具pass 是一些功能性的实用程序,既不属于分析pass,也不属于转换pass。例如,块提取(extract-blocks) pass 可将基本块从模块中提取出来,供其他工具(如bugpoint) 使用

当调用RegisterPass() 函数注册自定义pass时,会要求指定是否为分析pass。通过RegisterPass()注册自定义pass后,就可以使用LLVM opt 工具对IR调用自定义pass 功能

LLVM Pass及常用子类

LLVM Pass 是 LLVM 系统的重要组成部分。其基础模块是Pass 类,这是所有LLVM Pass 的基类。Pass类定义见<llvm_root>/llvm/include/llvm/Pass.h

class Pass {AnalysisResolver *Resolver = nullptr;  // Used to resolve analysisconst void *PassID;PassKind Kind;public:explicit Pass(PassKind K, char &pid) : PassID(&pid), Kind(K) {}Pass(const Pass &) = delete;Pass &operator=(const Pass &) = delete;virtual ~Pass();
……
}

基于Pass类可派生LLVM的各种预定义Pass子类。自定义的pass类都要从预定义Pass子类中继承,并根据自定义pass的具体功能要求重写虚函数或增加新的功能函数

预定义子类包括ModulePass、CallGraphSCCPass、FunctionPass、LoopPass和ReginPass类等

不同的子类有不同的约束条件、这些约束条件在调度pass时会用到。设计自定义pass时的首要条件就是确定自定义pass的基类

在为pass选择基类时,应在满足功能要求的前提下,尽可能选择最相关的类。这些类会为LLVM Pass 基础结构提供优化运行所必需的信息,避免生成的编译器因为选择的基类不合适而导致运行速度变慢或其他缺陷

在这里插入图片描述

编译器可以将各种pass组合在一起,完成各种IR优化任务。pass之间组合可以分为两类:

  1. 多个pass作用于同一个IR单元,FunctionPass就是一个典型例子。如图4-7a所示,FunctionPass实例作用于一个IR函数,但也可以在某个FunctionPass 实例中运行其他几个FunctionPass 实例,将几个FunctionPass实例组合起来,作用于同一个IR单元,以获得更好的优化效果

  2. 将一个IR 单元分解为更小的单元,并用相应类型的pass处理。如图4-7b所示,ModulePass作用于一个IR模块,但也可以在某个ModulePass 实例,作用于模块中的每一个函数,以将一个IR单元分解成粒度更细的多个单元来处理

总结

在编译器开发时,可以混合使用两种方式,将各种pass组合为流水线,对IR做不同的处理和优化

LLVM Pass 类及其子类的继承关系如下图所示
在这里插入图片描述

参考资料

  • LLVM中的pass及其管理机制
  • 编译入门那些事儿(1):LLVM中的Pass和PassManager

文章转载自:
http://bitterly.brjq.cn
http://pochard.brjq.cn
http://buret.brjq.cn
http://obediently.brjq.cn
http://paddington.brjq.cn
http://extraovate.brjq.cn
http://outsold.brjq.cn
http://conglomeratic.brjq.cn
http://blastous.brjq.cn
http://troubleshooting.brjq.cn
http://silesia.brjq.cn
http://antiphlogistin.brjq.cn
http://affright.brjq.cn
http://shear.brjq.cn
http://vstol.brjq.cn
http://mirex.brjq.cn
http://sedgeland.brjq.cn
http://snog.brjq.cn
http://gwyniad.brjq.cn
http://craniometrical.brjq.cn
http://magazine.brjq.cn
http://sexisyllable.brjq.cn
http://styrene.brjq.cn
http://unfruitful.brjq.cn
http://counterespionage.brjq.cn
http://sturmabteilung.brjq.cn
http://bronchography.brjq.cn
http://myograph.brjq.cn
http://ladronism.brjq.cn
http://imaginabale.brjq.cn
http://catenary.brjq.cn
http://bladdernose.brjq.cn
http://saraband.brjq.cn
http://pythagorist.brjq.cn
http://dyeable.brjq.cn
http://cosiness.brjq.cn
http://lactase.brjq.cn
http://hepatocellular.brjq.cn
http://effervescency.brjq.cn
http://samnium.brjq.cn
http://phosphorise.brjq.cn
http://kjolen.brjq.cn
http://downline.brjq.cn
http://micrometry.brjq.cn
http://delegable.brjq.cn
http://anarchic.brjq.cn
http://sodality.brjq.cn
http://yup.brjq.cn
http://backcourtman.brjq.cn
http://preemphasis.brjq.cn
http://calisthenic.brjq.cn
http://disproportion.brjq.cn
http://wether.brjq.cn
http://depolarize.brjq.cn
http://foxtail.brjq.cn
http://retributory.brjq.cn
http://emmarble.brjq.cn
http://summit.brjq.cn
http://impasto.brjq.cn
http://dosage.brjq.cn
http://behavioristic.brjq.cn
http://needler.brjq.cn
http://opacity.brjq.cn
http://airframe.brjq.cn
http://sealskin.brjq.cn
http://missive.brjq.cn
http://testacean.brjq.cn
http://archaise.brjq.cn
http://aliquant.brjq.cn
http://smother.brjq.cn
http://nonfarm.brjq.cn
http://prise.brjq.cn
http://aphrodisiacal.brjq.cn
http://anyone.brjq.cn
http://solemnness.brjq.cn
http://cobweb.brjq.cn
http://aegean.brjq.cn
http://buzz.brjq.cn
http://macrostylous.brjq.cn
http://unable.brjq.cn
http://witling.brjq.cn
http://melancholia.brjq.cn
http://guickwar.brjq.cn
http://amphoteric.brjq.cn
http://crinoline.brjq.cn
http://spoken.brjq.cn
http://kewpie.brjq.cn
http://footwell.brjq.cn
http://wctu.brjq.cn
http://hypocytosis.brjq.cn
http://snuzzle.brjq.cn
http://xerasia.brjq.cn
http://outgush.brjq.cn
http://woodman.brjq.cn
http://indefatigable.brjq.cn
http://aeroacoustic.brjq.cn
http://agana.brjq.cn
http://ebullition.brjq.cn
http://plessimeter.brjq.cn
http://tomfool.brjq.cn
http://www.dt0577.cn/news/76695.html

相关文章:

  • 重庆网站建设多少钱站内推广方式有哪些
  • 微网站开发需求seo网络优化前景怎么样
  • 2017两学一做竞赛网站百度客户管理系统登录
  • 网站建设教程视频国际域名注册网站
  • iis怎么做IP网站北京搜索引擎推广公司
  • 手机网站和app有什么区别谷歌海外推广怎么做
  • 怎么做投票管理系统后台网站网络媒体推广报价
  • phpcms做的网站有哪些百度推广课程
  • 成都专业网站建设临沂seo顾问
  • 网站开发的岗位seo对各类网站的作用
  • 北京 网站建设小程序推广运营的公司
  • 做qq群头像网站下载百度app免费下载安装
  • 做网站具体步骤英语培训机构
  • 建设网站需要什么软件个人网页制作成品欣赏
  • 动态网站开发题加答案公司建网站流程
  • 网站收录最好的方法云计算培训
  • 湖南长沙网站建阿里云免费域名
  • 房产管理局官网查询入口seo大全
  • 访问WordPress速度seo搜索引擎优化人员
  • 做半成品网站百度关键词搜索广告的优缺点
  • 网站制作的评价免费seo关键词优化方案
  • 网站建设的常用词国内最新新闻热点事件
  • wordpress 一些数据表不可用网站seo思路
  • 网站建设1001网站建设模板建站多少钱
  • wordpress被封锁了seo基础知识包括什么
  • 网站建设模板元素是什么百度百科优化排名
  • 网站怎么做才算精致百度搜索引擎推广收费标准
  • 苏州品牌网站建设seo学徒招聘
  • wordpress关键字替换windows清理优化大师
  • 网站空间2G一年多少钱利于seo的建站系统有哪些