LLVM每日谈之四十四 LLVM的别名分析

栏目: 服务器 · 编程工具 · 发布时间: 5年前

内容简介:别名分析是试图决定两个指针是否指向同一块内存的一类技术,这类技术有很多种不同的算法和方法。所以,别名分析也常常被称作是指针分析。别名分析通常会返回是别名、或许是别名和不是别名等几种情况。LLVM别名分析的核心是AliasAnalysis类。这个类提供了用户或者是LLVM系统内部使用别名分析所需要的接口。AliasAnalysis类的代码在llvm/lib/Analysis/目录下有AliasAnalysis.cpp。AliasAnalysis类中用到了一个很重要的枚举(代码出自AliasAnalysis.h

别名分析是试图决定两个指针是否指向同一块内存的一类技术,这类技术有很多种不同的算法和方法。所以,别名分析也常常被称作是指针分析。别名分析通常会返回是别名、或许是别名和不是别名等几种情况。

LLVM别名分析的核心是AliasAnalysis类。这个类提供了用户或者是LLVM系统内部使用别名分析所需要的接口。AliasAnalysis类的代码在llvm/lib/Analysis/目录下有AliasAnalysis.cpp。

AliasAnalysis类中用到了一个很重要的枚举(代码出自AliasAnalysis.h):

78 enum AliasResult : uint8_t {
   79   /// The two locations do not alias at all.
   80   ///
   81   /// This value is arranged to convert to false, while all other values
   82   /// convert to true. This allows a boolean context to convert the result to
   83   /// a binary flag indicating whether there is the possibility of aliasing.
   84   NoAlias = 0,
   85   /// The two locations may or may not alias. This is the least precise result.
   86   MayAlias,
   87   /// The two locations alias, but only due to a partial overlap.
   88   PartialAlias,
   89   /// The two locations precisely alias each other.
   90   MustAlias,
   91 };

用来表示别名分析的结果。从代码中我们可以看到,其实一共可以有四种结果:不是别名、可能是别名、部分别名和是别名。

深入了解LLVM的别名分析可以参考:

1、文档: http://llvm.org/docs/AliasAnalysis.html

2、AliasAnalysis.h: http://llvm.org/doxygen/AliasAnalysis_8h_source.html

3、AliasAnalysis.cpp: http://llvm.org/doxygen/AliasAnalysis_8cpp_source.html


以上所述就是小编给大家介绍的《LLVM每日谈之四十四 LLVM的别名分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言深度解剖

C语言深度解剖

陈正冲 / 北京航空航天大学出版社 / 2010-7 / 29.00元

《C语言深度解剖:解开程序员面试笔试的秘密》由作者结合自身多年嵌入式c语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以《C语言深度解剖:解开程序员面试笔试的秘密》并不适用于C语言零基础的读者,其内容要比一般的C语言图书深得多、细致得多,其中有很多问题是各大公司的面试或笔试题。 《C语言深度解剖:解开程序员面试笔试的秘......一起来看看 《C语言深度解剖》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具