#LLVM 词典 ##

本文转自https://github.com/oxnz/clang-user-manual/blob/master/LLVM-Language-Reference-Manual.md

发现原文部分翻译有误后,重新整理后发出

**A**

ADCE

Aggressive Dead Code Elimination 积极的死代码消除

AST

Abstract Syntax Tree 抽象语法树

由于 Clang 的影响(大多是由于 C,尤其是 C++ 错综复杂的解析和语义分析),典型的 LLVM 社区中的 AST 的定义大概是“输入程序的编译器第一个完整的符号(与文本相反)表示”。因此,一个 “AST” 可能更像一个通用图而不是一棵“树”(考虑一个链表节点的符号表示)。这个工作的定义更接近一些作者所谓的“带注释的抽象语法树”。

使用你最喜欢的编译器书籍和搜索引擎来获取更多信息。

**B**

BB Vectorization

Basic-Block Vectorization 基本块向量化

BURS

Bottom Up Rewriting System — A method of instruction selection for code generation.

自底向上重写系统-一种代码生成中的指令选择方法。一个例子是 BURG 工具。

C

CSE

Common Subexpression Elimination.

共同子表达式消除。一种移除共同子表达式的优化。例如 (a+b)*(a+b) 有两个相同的子表达式: (a+b)。这个优化使得只做一次加法然后执行乘法(但是只针对正确且安全的计算)。

D

DAG

Directed Acyclic Graph

有向不循环图

Derived Pointer

一个指向对象内部的指针,使得垃圾回收器不能使用此指针进行可达性分析。只要一个 derived 指针存在,对应的对象的指针必须保留在 root 内,否则垃圾回收器可能会释放引用的对象。对于拷贝收集器,derived 指针具有额外的风险使得它们可能在任何安全点处无效化。这个机制被用来对抗对象指针。

DSA

数据结构分析

DSE

Dead Store Elimination

可不达存储消除

F

FCA

First Class Aggregate

第一类集合

G

GC

垃圾回收。使用可达性分析替代显式的内存管理来回首不再使用的内存。

H

Heap

在垃圾回收中,使用可达性分析管理的内存区域

I

IPA

Inter-Procedural Analysis.

过程间分析。引用到过程、函数和编译单元(模块)之间发生的大量代码分析。

IPO

过程间优化。引用到过程、函数和编译单元(模块)之间发生的大量代码优化。

ISel

指令选择

L

LCSSA

Loop-Closed Static Single Assignment Form

闭环静态单赋值形式

LICM

Loop Invariant Code Motion

循环不变量

Load-VN

负荷值编号

LTO

链接时优化

M

MC

机器码

O

Object Pointer

指向对象的指针,使得垃圾回收器可以追踪对象内的引用。这个机制用来对抗derived 指针。

P

PRE

Partial Redundancy Elimination

部分冗余消除

R

RAUW

Replace All Uses With. The functions User::replaceUsesOfWith(), Value::replaceAllUsesWith(), and Constant::replaceUsesOfWithOnConstant() implement the replacement of one Value with another by iterating over its def/use chain and fixing up all of the pointers to point to the new value. See also def/use chains.

Reassociation

重新排列关联表达式,以促进更好的冗余消除和其他优化。例如,将(A+B-A)转换成(B+A),允许它被优化为(B+0),然后(B)。

Root

在垃圾回收中,堆中的一个指针变量,垃圾回收器从这个指针开始可达性分析。在代码生成的上下文中,“root”几乎总是指向“stack root”-一个函数调用过程中的局部或临时变量。

RPO

Reverse postorder

S

Safe Point

在垃圾回收中,必须标识栈根使得可达性分析能够执行。对于每条指令提供这个信息可能变得不可能,所以这个信息只在指定的安全点计算。使用拷贝收集器,derived 指针绝对不可以跨安全点并且对象指针必须从栈根重新加载。

SDISel

Selection DAG Instruction

DAG 指令选择

SCC

Strongly Connected Component

强链接组件

SCCP

Sparse Conditional Constant Propagation

稀疏的条件常量传播

SLP

Superword-Level Parallelism 超字并行,是一种通过循环展开和基本块向量化的向量化技术

SRoA

Scalar Replacement of Aggregates

聚合标量替换

SSA

Static Single Assignment

静态单赋值

Stack Map

在垃圾回收中,由代码生成器发出的元数据在一个函数调用的栈帧中标识了roots。

T

TBAA

Type-Based Alias Analysis

基于类型的别名分析

LLVM 词典的更多相关文章

  1. Mac 词典工具推荐:Youdao Alfred Workflow(可同步单词本)

    想必大家都有用过 Mac 下常见的几款词典工具: 特性 系统 Dictionary 欧路词典 Mac 版 有道词典 Mac 版 在线搜索 ✗ ✔ ✔ 屏幕取词 ☆☆☆ ★★☆ ★☆☆ 划词搜索 ★★★ ...

  2. 个人作业-week2:关于微软必应词典的案例分析

    第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其 ...

  3. 萌新笔记——C++里创建 Trie字典树(中文词典)(三)(联想)

    萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码.  Orz 一样地先放上运行结果: test1 ID : char : 件 w ...

  4. 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)

    萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...

  5. 【应用】_有道词典客户端一个后缀名为sql的数据库。

    [缘起] 在清理电脑磁盘的时候,看一看各安装文件夹有占用了多大容量,发现有道词典居然达140MB了,于是进去看看. 发现个有趣的文件:XXX.sql. 首先我们看一看它的安装文件夹的结构: Dict ...

  6. 如何在Texstudio内加载语法检查词典?

    如何在Texstudio编辑软件内加载"语法检查词典"? How to make dictionary work in TexStudio I am using TexStudio ...

  7. 基于讯飞语音API应用开发之——离线词典构建

    最近实习在做一个跟语音相关的项目,就在度娘上搜索了很多关于语音的API,顺藤摸瓜找到了科大讯飞,虽然度娘自家也有语音识别.语义理解这块,但感觉应该不是很好用,毕竟之前用过百度地图的API,有问题也找不 ...

  8. JavaScript一词被《牛津大词典》收录了

    早上看VS Team的推特发了这个图片,以前总爱问Java怎么读,现在好了,有标准发音了. 确定是 扎瓦·死磕瑞普特 ,哈哈,以后不要再念加瓦了. …… Last month JavaScript r ...

  9. 基于pygtk的linux有道词典

    基于pygtk的linux有道词典 一.桌面词典设计 想把Linux用作桌面系统,其中一部分障碍就是Linux上没有像有道一样简单易用的词典.其实我们完全可以自己开发一款桌面词典, 而且开发一款桌面词 ...

随机推荐

  1. 用Intellij idea搭建solr调试环境

    最近在使用solr时,配置会有一些问题,log里面打印出日志了,但是还是不知道发生这样错误的原因.于是想学习一下相关的solr源码,以下是如何搭建solr调试环境步骤. solr调试环境搭建,首先下载 ...

  2. RN中webview的一些思考

    刚开始只是对接一下RN,h5部分,嵌套在RN里的webview里需要隐藏一些原生的按钮,遇到很多沟通上的问题,本来没使用RN之前,也是嵌套在webview里,也没什么问题,突然RN嵌套就有问题了,对方 ...

  3. 五十:数据库之Flask-Script详解

    使用flask-script可以实现自定义命令来操作flask,如:可以通过命令来跑一个开发版本的服务器.设置数据库.定时任务等安装:pip install flask-script 命令的添加方式1 ...

  4. JAVA8中Predicate,Consumer,UnaryOperator,Function接口的应用

    笔者平时时间有限,直接贴代码,关于几个接口的差别,可以查看这两篇文章 感受lambda之美,推荐收藏,需要时查阅 https://juejin.im/post/5ce66801e51d455d850d ...

  5. Debian10服务器安装

    对于使用惯windows系统的人来说,刚开始接触使用linux系统一定是很不习惯,因为使用环境的变化经常会出现一些错误.当然,对于我来说,我也是刚刚才开始接触Linux,对此,有些地方想不到的,可以多 ...

  6. Python学习之格式化简述

    2.2 格式化输出 2.2.1 占位符 ​ %s就是代表字符串占位符:%d是数字占位符,%i 也可以表示数字,如果把变量后⾯的换成%d,就代表必须只能输⼊数字这时对应的数据必须是int类型. 否则程序 ...

  7. 系统 --- Linux系统环境搭建

    Linux命令介绍 软硬链接 作用:建立连接文件,linux下的连接文件类似于windows下的快捷方式 分类: 软链接:软链接不占用磁盘空间,源文件删除则软链接失效 硬链接:硬链接只能链接不同文件, ...

  8. MSF魔鬼训练营-3.4.2网络漏洞扫描-OpenVAS(待补完)PS:在虚拟机里面运行OpenVAS扫描的进度真的是超慢啊...

     由于新版的kali中没有预装OpenVAS.所以在虚拟机中安装花了非常多的时间. 安装过程参考:http://www.cnblogs.com/zlslch/p/6872559.html过程写的非常详 ...

  9. K8s开始

    部署前思考:

  10. 简单nginx代理配置

    nginx.conf: # For more information on configuration, see:# * Official English Documentation: http:// ...