LLVM如何执行活力分析?

新手

我是一个刚开始学习编译器基础知识的初学者。

在挖掘LLVM时,我不确定在哪里查找活动性分析部分。

据我了解,变成LLVM IR的程序变成了DAG,然后变成了MIR。

幻灯片介绍了活动性跟踪,我假设活动性分析是在MIR进行的。

因此,我正在查看诸如LiveVariables.cpp,LiveIntervalAnalysis.cpp之类的源代码,但是我不确定代码在哪里定义了诸如def,kill,imp-use之类的东西。

谁能告诉我在哪里可以找到这些代码以及如何在此过程中转储信息?

谢谢,

杰克

德怀特·古斯

LLVM使用SSA形式的中间表示。SSA-形式IR意味着每个变量被定义一次,以及每次使用被支配由它的定义。支配是图论中的一个概念,从本质上讲,控制流程图中使用的所有路径都必须经过其定义。如果您愿意,有很多关于SSA的信息,以及如何从网络上的传统IR构建SSA的信息。

实际上,这种选择使基于数据流方程式的传统活动度分析变得不必要。SSA编译器没有计算每个基本块的实时集合,而是仅提供了一个函数来回答“此变量是否在此位置?”这一问题。

LLVM的活动性分析(用于寄存器分配)是在与目标无关的代码生成器中完成的,这意味着可以在lib/CodeGen目录中找到许多代码特别是,您可能对MachineBasicBlock :: computeRegisterLiveness以及lib/CodeGen/LiveVariables.cpp

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LLVM保留循环分析

来自分类Dev

如何使用IntelliJ执行jstack输出分析

来自分类Dev

如何以编程方式快速设置UIVisualEffectView的活力值?

来自分类Dev

如何执行Java字节码活动性分析?

来自分类Dev

如何使用 R.NET 执行变更点分析

来自分类Dev

如何从头开始执行关联规则分析或市场篮子分析?

来自分类Dev

如何从头开始执行关联规则分析或市场篮子分析?

来自分类Dev

VBA执行差距分析

来自分类Dev

LLVM函数自变量的过程间分析

来自分类Dev

如何强制emscripten / em ++ / llvm从.rodata加载常量和/或执行更好的SIMD优化?

来自分类Dev

如何使LLVM Opt工具报告每个优化-O1,-O2等成功使用的分析?

来自分类Dev

如何重新打开一个非常相同的活动/如何使活动保持活力?

来自分类Dev

如何在Notification Center Today小部件中实现充满活力的选择状态

来自分类Dev

在文本中执行语义分析

来自分类Dev

如何卸载LLVM?

来自分类Dev

如何安装LLVM 3.9

来自分类Dev

如何使用llvm库

来自分类Dev

如何创建 llvm 类型

来自分类Dev

如何分析Linux可执行文件的静态内存使用情况?

来自分类Dev

如何在Elasticsearch中的分析字段上执行完全匹配查询?

来自分类Dev

如何有效地执行循环语句以进行数据分析?

来自分类Dev

如何在绑定到CameraX分析仪的执行器内部添加延迟?

来自分类Dev

如何使用AI分析测试执行输出(SQL输出)以设计回归套件?

来自分类Dev

llvm可以从托管语言执行代码吗?

来自分类Dev

Kubernetes活力探针

来自分类Dev

我该如何将道具/上下文传递给有活力的儿童以做出反应?

来自分类Dev

Laravel CRON或Event进程通过长时间轮询响应api请求-如何重新激活会话活力

来自分类Dev

如何下载llvm的特定版本?

来自分类Dev

如何识别内部llvm功能?

Related 相关文章

  1. 1

    LLVM保留循环分析

  2. 2

    如何使用IntelliJ执行jstack输出分析

  3. 3

    如何以编程方式快速设置UIVisualEffectView的活力值?

  4. 4

    如何执行Java字节码活动性分析?

  5. 5

    如何使用 R.NET 执行变更点分析

  6. 6

    如何从头开始执行关联规则分析或市场篮子分析?

  7. 7

    如何从头开始执行关联规则分析或市场篮子分析?

  8. 8

    VBA执行差距分析

  9. 9

    LLVM函数自变量的过程间分析

  10. 10

    如何强制emscripten / em ++ / llvm从.rodata加载常量和/或执行更好的SIMD优化?

  11. 11

    如何使LLVM Opt工具报告每个优化-O1,-O2等成功使用的分析?

  12. 12

    如何重新打开一个非常相同的活动/如何使活动保持活力?

  13. 13

    如何在Notification Center Today小部件中实现充满活力的选择状态

  14. 14

    在文本中执行语义分析

  15. 15

    如何卸载LLVM?

  16. 16

    如何安装LLVM 3.9

  17. 17

    如何使用llvm库

  18. 18

    如何创建 llvm 类型

  19. 19

    如何分析Linux可执行文件的静态内存使用情况?

  20. 20

    如何在Elasticsearch中的分析字段上执行完全匹配查询?

  21. 21

    如何有效地执行循环语句以进行数据分析?

  22. 22

    如何在绑定到CameraX分析仪的执行器内部添加延迟?

  23. 23

    如何使用AI分析测试执行输出(SQL输出)以设计回归套件?

  24. 24

    llvm可以从托管语言执行代码吗?

  25. 25

    Kubernetes活力探针

  26. 26

    我该如何将道具/上下文传递给有活力的儿童以做出反应?

  27. 27

    Laravel CRON或Event进程通过长时间轮询响应api请求-如何重新激活会话活力

  28. 28

    如何下载llvm的特定版本?

  29. 29

    如何识别内部llvm功能?

热门标签

归档