内容简介:别名分析是试图决定两个指针是否指向同一块内存的一类技术,这类技术有很多种不同的算法和方法。所以,别名分析也常常被称作是指针分析。别名分析通常会返回是别名、或许是别名和不是别名等几种情况。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的别名分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Elasticsearch 技术分析(三): 索引别名Aliases问题
- Git命令别名设置
- mybatis的typeAliases别名
- Elasticsearch基础但非常有用的功能之一:别名
- Elasticsearch索引的基本操作(5)-别名设置
- c++ 这是否真的破坏了严格的别名规则?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
最优化导论
Edwin K. P. Chong、Stanislaw H. Zak / 孙志强、白圣建、郑永斌、刘伟 / 电子工业出版社 / 2015-10 / 89.00
本书是一本关于最优化技术的入门教材,全书共分为四部分。第一部分是预备知识。第二部分主要介绍无约束的优化问题,并介绍线性方程的求解方法、神经网络方法和全局搜索方法。第三部分介绍线性优化问题,包括线性优化问题的模型、单纯形法、对偶理论以及一些非单纯形法,简单介绍了整数线性优化问题。第四部分介绍有约束非线性优化问题,包括纯等式约束下和不等式约束下的优化问题的最优性条件、凸优化问题、有约束非线性优化问题的......一起来看看 《最优化导论》 这本书的介绍吧!