参考知乎文博的部分翻译

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相关推荐

  1. 2016 LLVM Developers’ Meeting - Experience from Johannes Doerfert, Travel Grant Recipient

    2016 LLVM Developers' Meeting - Experience from Johannes Doerfert, Travel Grant Recipient This blog ...

  2. 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 ...

  3. 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 ...

  4. OpenCV 笔记(09)— 常用的数据结构和函数(Vec、Point、Scalar、Size、Rect、cvtColor)

    1. Vec 对象类型 Vec 是一个主要用于数值向量的模板类.我们可以定义向量的类型和组件的数量: Vec<double, 19> myVector 我们还可以使用任何的预定义类型: t ...

  5. EyeQ进展The Evolution of EyeQ

    EyeQ进展The Evolution of EyeQ Mobileye's proven leadership in ADAS technologies is based in our EyeQ® ...

  6. 图像颜色--opencv scalar

    Scalar定义可存放1-4个数值的数值,其结构体如下: typedef struct Scalar {double val[4]; }Scalar; 例如:Scalar s: 如果使用的图像是1通道 ...

  7. OpenCV数据结构与基本绘图(Mat 类、Point类、Scalar类等)

    文章目录 1.基础图像容器 Mat 1.1Mat 结构的使用 1.2像素值的存储方法 1.3 显示创建 Mat 对象的七种方法 1.3.1 Mat 的常用构造函数 1.4 OpenCV 中的格式化输出 ...

  8. OpenCV 中的 Scalar 类、Vec类

    转 自 http://www.bubuko.com/infodetail-1533054.html 文章目录 Scalar 类 Vec 类 Scalar 类 typedef Scalar_<do ...

  9. evolution ubuntu邮箱_Ubuntu下使用Evolution电子邮箱客户端

    =摘要= 话说一直是使用web的邮箱客户端,今天想了想应该试试Evolution这个linux下面的邮箱客户端.搞了搞,能够正常收发邮件了呵呵,在能够接收邮件的同时,现在也不用每一次都得登录到web邮 ...

最新文章

  1. 【Kaldi安装问题】Nvidia库cub安下载失败
  2. maven快照版本机制详解
  3. php glob() 列出目录及文件
  4. dedecms首页怎么调用公司简介的内容
  5. oracle 物理表,【查询Oracle表实际物理使用大小】
  6. 10tb服务器硬盘 选购,2017最靠谱大容量机械硬盘选购指南(基于Backblaze硬盘寿命可靠性报告)...
  7. 【报告分享】bilibili 2020品牌营销手册.pdf(附下载链接)
  8. Java IO-03 字节流和字符流
  9. 微信小程序跳转微信小程序的实现
  10. Finaldata数据恢复软件官方版
  11. 人工智能——微粒群优化算法
  12. Js实现继承的6种方式
  13. servlet.ServletException: java.lang.NoClassDefFoundError: cn/huiyuan/lwj/vo
  14. c语言编计分秒时的程序,用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。...
  15. C语言吸引人眼球的题目,公众号文章标题如何吸引用户眼球,12个写出好标题的技巧...
  16. 网络协议与网络编程(双电脑串口通讯)
  17. vmware 安装 黑群晖
  18. 天润云通过港交所聆讯:依赖教育行业客户,预计下半年业绩将下滑
  19. 基于MaxScale中间件的MySQL读写分离
  20. 现代控制理论——状态空间方法

热门文章

  1. SAN和NAS的区别
  2. 探索个人碳账户应用,实践绿色金融创新
  3. 学习QT之图形视图实例#-飞舞的蝴蝶
  4. python点阵显示数字_Python实现点阵字体读取与转换的方法
  5. IntelliJ IDEA中的神仙插件 写代码必备!
  6. 阿呆喵广告过滤 v1.9.0.1 官网版
  7. Prolog学习:用八卦的精神走进Prolog
  8. 认识1M带宽、1Mbps、1Mb/s 区分
  9. CentOS 7.0全自动安装光盘制作详解
  10. 苹果遭遇史上最严厉的泄密:自家的iOS源代码居然泄漏了