【工作日志】1月5日——指针分析 LLVM

目录

  • 别名分析
  • 读LLVM每日谈
    • 3-创建LLVM工程
  • 跟LLVM学习教程
  • 资料留存

别名分析

今天在群里看到一个朋友询问别名分析时为什么使用二元组的形式,而不是使用指针分析中的结合形式,我在CSDN中查阅资料时,发现了这篇文章1,其中区分了指针分析和别名分析,解答了那位朋友的问题。该文章中部分符号遗漏,推荐查看原论坛的文章,搬运至此。
阅读该文章时,发现对其中提到的MemoryLocation感兴趣,特意将链接找出来贴到这里。
文章1提到的ModRef部分,即4.2.2的3,已经封装到一个单独的文件,附链接在此。
继续查找别名分析的文章,找到了这篇文章2,看起来有部分内容是对LLVM的alias analysis的翻译,贴一个原文。
先这样,对别名分析不是特别懂,看的迷迷糊糊。
以后有机会的话可以看这篇博客。

读LLVM每日谈

贴一个专栏地址,这是作者之前的一个系列文章,我在知乎上关注过作者(原名小乖他爹,现名编译船夫)。

3-创建LLVM工程

官方教程在这里,但是给出的是makefile的构建方式,不喜欢,以后在看。且现在直接从APT安装的LLVM,其头文件是可以默认引用的,不需要额外的配置。

LLVM的周报,好东西,暂存,支持邮件列表。

跟LLVM学习教程

贴一下教程链接。

这篇文章真是好啊,第一次写pass的时候就用的这个。相当于提供了一个测试用的框架。

StringRef使用了Data和Length两个成员变量,如果将其直接转换为常量数组的话可能造成字符串截断,因为Data中可能有\0存在。

资料留存

https://llvm.org/docs/ProgrammersManual.html#passing-strings-the-stringref-and-twine-classes

llvm在知乎上的搜索结果(未筛选)
https://www.zhihu.com/search?hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A1115473828%7D&hybrid_search_source=Entity&q=llvm%20pass&search_source=Entity&type=content

在最近学习的过程中总是发现容易发散,没有中心,且很多好的资料,如果只存在本地的话既不容易在多个设备中流转,又不好标记,因此决定写一系列名为工作日志的文章,不奢求阅读数据,权当将好资料集中分享。

你可能感兴趣的:(编程语言,学习,LLVM,程序分析,别名分析,编译)