Scalar Evolution
参考知乎文博的部分翻译
Scalar Evolution
- 1、definition
- 2、application
- 3、Induction Variable Simplify
- Basic Recurrences
- Chain Recurrence
- SCEV Folding的基本model
- Folding Example
- SCEV Analysis APIs
1、definition
Scalar Evolution:Change in the Value of Scalar Variables Over Iterations of the Loop
通常情况下只是对于循环中(loop)int类型的变量进行分析.
2、application
SCEV是LLVM中一个很重要的analysis pass。
使用其analysis分析结果的Passes:
– Loop strength reduction (LSR)
– Induction Variable Simplify (IndVars)
– Loop Vectorizer, SLP Vectorizer, Load Store Vectorizer, Re-associate nary expr
– Loop Access Analysis, Dependence Analysis, SCEV-AA
3、Induction Variable Simplify
(1)IndVars
SCEV是对于Scalar variable在循环中的分析。这个分析包含初始值,每次迭代的变化,
请注意t = t + k 这句, 每次循环的迭代中对于t 的值进行+k 的操作。
t 的起始值是0,迭代次数是n, 每次迭代进行了加k。
pass在IR上的优化:
数次加法转为一次乘法
(2)Loop strength reduction (LSR)
Basic Recurrences
介绍表达的数学expression
basic recurrence : {start, + , step}
// start: starting value
// step: step in each iteration
通过调用llvm opt pass of SCEV 对case进行测试
Chain Recurrence
属于嵌套 chain,通过以最左边加{}
SCEV Folding的基本model
加运算、乘运算、嵌套乘、嵌套加运算的数学表达形式
Folding Example
SCEV Analysis APIs
还有的拓展内容在pdf中。
Scalar Evolution相关推荐
- 2016 LLVM Developers’ Meeting - Experience from Johannes Doerfert, Travel Grant Recipient
2016 LLVM Developers' Meeting - Experience from Johannes Doerfert, Travel Grant Recipient This blog ...
- Announcing the program for the 2018 LLVM Developers’ Meeting Bay Area
Announcing the program for the 2018 LLVM Developers' Meeting Bay Area The LLVM Foundation is excited ...
- Announcing the program for the 2019 LLVM Developers’ Meeting - Bay Area
Announcing the program for the 2019 LLVM Developers' Meeting - Bay Area 2019 Bay Area LLVM Developer ...
- OpenCV 笔记(09)— 常用的数据结构和函数(Vec、Point、Scalar、Size、Rect、cvtColor)
1. Vec 对象类型 Vec 是一个主要用于数值向量的模板类.我们可以定义向量的类型和组件的数量: Vec<double, 19> myVector 我们还可以使用任何的预定义类型: t ...
- EyeQ进展The Evolution of EyeQ
EyeQ进展The Evolution of EyeQ Mobileye's proven leadership in ADAS technologies is based in our EyeQ® ...
- 图像颜色--opencv scalar
Scalar定义可存放1-4个数值的数值,其结构体如下: typedef struct Scalar {double val[4]; }Scalar; 例如:Scalar s: 如果使用的图像是1通道 ...
- OpenCV数据结构与基本绘图(Mat 类、Point类、Scalar类等)
文章目录 1.基础图像容器 Mat 1.1Mat 结构的使用 1.2像素值的存储方法 1.3 显示创建 Mat 对象的七种方法 1.3.1 Mat 的常用构造函数 1.4 OpenCV 中的格式化输出 ...
- OpenCV 中的 Scalar 类、Vec类
转 自 http://www.bubuko.com/infodetail-1533054.html 文章目录 Scalar 类 Vec 类 Scalar 类 typedef Scalar_<do ...
- evolution ubuntu邮箱_Ubuntu下使用Evolution电子邮箱客户端
=摘要= 话说一直是使用web的邮箱客户端,今天想了想应该试试Evolution这个linux下面的邮箱客户端.搞了搞,能够正常收发邮件了呵呵,在能够接收邮件的同时,现在也不用每一次都得登录到web邮 ...
最新文章
- 【Kaldi安装问题】Nvidia库cub安下载失败
- maven快照版本机制详解
- php glob() 列出目录及文件
- dedecms首页怎么调用公司简介的内容
- oracle 物理表,【查询Oracle表实际物理使用大小】
- 10tb服务器硬盘 选购,2017最靠谱大容量机械硬盘选购指南(基于Backblaze硬盘寿命可靠性报告)...
- 【报告分享】bilibili 2020品牌营销手册.pdf(附下载链接)
- Java IO-03 字节流和字符流
- 微信小程序跳转微信小程序的实现
- Finaldata数据恢复软件官方版
- 人工智能——微粒群优化算法
- Js实现继承的6种方式
- servlet.ServletException: java.lang.NoClassDefFoundError: cn/huiyuan/lwj/vo
- c语言编计分秒时的程序,用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。...
- C语言吸引人眼球的题目,公众号文章标题如何吸引用户眼球,12个写出好标题的技巧...
- 网络协议与网络编程(双电脑串口通讯)
- vmware 安装 黑群晖
- 天润云通过港交所聆讯:依赖教育行业客户,预计下半年业绩将下滑
- 基于MaxScale中间件的MySQL读写分离
- 现代控制理论——状态空间方法