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

网站开发公司oa竞价推广什么意思

网站开发公司oa,竞价推广什么意思,湖北建站管理系统信息,深圳互联网公司llvm后端之DAG设计 引言1 核心类设计2 类型系统2.1 MVT::SimpleValueType2.2 MVT2.3 EVT 3 节点类型 引言 llvm后端将中端的IR转为有向无环图,即DAG。如下图: 图中黑色箭头为数据依赖;蓝色线和红色线为控制依赖。蓝色表示指令序列化时两个节…

llvm后端之DAG设计

  • 引言
  • 1 核心类设计
  • 2 类型系统
    • 2.1 MVT::SimpleValueType
    • 2.2 MVT
    • 2.3 EVT
  • 3 节点类型

引言

llvm后端将中端的IR转为有向无环图,即DAG。如下图:
在这里插入图片描述
图中黑色箭头为数据依赖;蓝色线和红色线为控制依赖。蓝色表示指令序列化时两个节点中间可以插入其他节点对应的指令,而红色节点表示两个节点生成的指令中间不能插入其他节点的指令。

注:本文参考源码路径为 https://github.com/llvm/llvm-project/tree/release/10.x

1 核心类设计

DAG图是围绕SDNode、SDUse、SDValue组织,如下图:
在这里插入图片描述

  • DAG图中每个节点,用SDNode表示。节点有依赖节点,用OperandList表示;节点可以有多个输出值,其输出值类型用ValueList表示;
  • 用SDValue表示每个节点的输出值,其中记录了SDNode和输出值序号ResNo;
  • SDUse表示DAG图的依赖箭头。用Val表示箭头指向的节点,即被依赖的节点输出值;用User表示箭头起点的节点,即使用节点;
  • 每个SDUse设置Val时,会将自己添加到SDNode的UseList链表中。这样每个Node就可以遍历到使用自己的其他节点。

2 类型系统

llvm后端DAG的类型系统分为三个层级,从外到内为:EVT、MVT、SimpleValueType。如下图:
在这里插入图片描述

2.1 MVT::SimpleValueType

SimpleValueType是基本数据类型的枚举定义,其中包括:

  • 整数类型
  • 浮点类型
  • 向量类型:其中包括按类型分类有整数向量和浮点向量,按长度分类有固定长度向量和变长向量
  • 其他类型

2.2 MVT

MVT是对SimpleValueType值的封装。并提供常规的方法:

  • isValid : 为整数类型、浮点类、向量类型以及x86mmx、Glue、isVoid、Untyped、exnref,则为true;
  • isFloatingPoint / isInteger : 整数/浮点及其相应类型的向量为true;
  • isScalarInteger : 非向量的整数类型则为true;
  • isScalableVector : 变长向量则为true;
  • isFixedLengthVector :定长向量则为true;
  • isOverloaded : 可重载类型,就是由内置函数可以解释的任意长度类型。有Any、iAny、vAny、fAny、iPTRAny;
  • isPow2VectorType :向量元素个数为2的N次方,则为true;
  • getPow2VectorType : 返回元素个数扩展为2的N次方的新向量类型,例如16个不扩展,5个则扩展为8个;
  • getHalfNumVectorElementsVT : 将向量元素个数截断为原来的一半并返回其类型;
  • getScalarType : 为向量则返回元素类型,否则返回自身相同类型;
  • getVectorNumElements : 返回向量元素个数,变长向量则返回最小向量元素个数;
  • getSizeInBits : 返回类型的bit位数,变长向量则返回最小元素个数乘以元素类型的bit数。
  • getScalarSizeInBits : 返回getScalarType类型的bit位数;
  • getStoreSize : 返回类型从存储长度,即扩展为字节长度。例如1位int扩展为8位int;
  • bitsGT / bitsGE / bitsLT / bitsLE : 比较MVT的getSizeInBits值;

此外,还提供了根据bit位返回类型的系列静态方法。

2.3 EVT

EVT是对MVT的封装,此外还提供了对MVT类型的扩展。当表示MVT之外的类型时,其V.SimpleTy为INVALID_SIMPLE_VALUE_TYPE。例如,当定义一个1024位的int,此时就是一个扩展类型。

3 节点类型

DAG节点的类型(也就是操作类型,对应于指令类型)是定义在llvm::ISD::NodeType枚举类型中;此外,可以基于BUILTIN_OP_END往后自定义目标的操作类型。llvm::ISD::NodeType的节点类型包括:

http://www.tj-hxxt.cn/news/63181.html

相关文章:

  • 校园网站建设标书google关键词推广
  • 工业设计公司深圳本也设计搜狗整站优化
  • 药品企业网站域名证书办理石家庄最新新闻事件
  • 中国建设会计协会网站首页在线bt种子
  • 湖州做网站的公司产品营销方案策划书
  • 栾城做网站济南网站优化公司哪家好
  • 宝塔系统搭建wordpress优化大师兑换码
  • 网站开发游戏程序开发关键词怎么提取
  • 大型网站如何开发详情页页面页面
  • 楼凤网站怎么做的谷歌首页
  • 专门做影评的网站百度云网盘搜索引擎
  • 国内网站推广seo案例分享
  • 网站建设403seo怎么才能优化好
  • 茶叶公司网站源码如何做市场调研和分析
  • 河南省建设部官方网站什么是长尾关键词举例
  • 宁夏建网站报价常用的关键词有哪些
  • 能利用双股铜芯电话线做网站吗什么推广软件效果好
  • 快三竞猜网站建设奶茶的营销推广软文
  • 动态的网站大概多少钱软文推广名词解释
  • 网站独立主机设计好看的网站
  • 文章修改网站网站怎么添加外链
  • 公司怎么做网络营销百度seo哪家公司好
  • 网站店铺分布图怎么做百度服务中心人工客服
  • 医疗器械网站模板营销咨询公司
  • 企业网站排名要怎么做电商seo是指
  • 建设厅网站预算员报名时间淘宝代运营公司排名
  • 怎样做微网站软文营销的写作技巧有哪些
  • 厦门公司做网站seo研究中心道一老师
  • 烟台网站建设靠谱企汇互联见效付款网络营销最新案例
  • 国内新闻最新消息10条2023seo关键词推广优化