我是一个刚刚学习编译器基础知识的初学者。
在挖掘LLVM时,我不确定在哪里可以查找活跃度分析部分。
根据我的理解,变成LLVM IR的程序变成了DAG,然后变成了MIR。
这张幻灯片介绍了活跃度跟踪,我假设活跃度分析发生在MIR。
因此,我正在查看LiveVariables.cpp、LiveIntervalAnalysis.cpp等源代码,但我不确定代码在哪里定义def、kill、imp-use等内容。
有人能告诉我在哪里可以找到这些代码,以及如何在这个过程中转储信息吗?
谢谢,
Jake
在实践中,这种选择使得基于数据流方程的传统活性分析变得不必要。SSA编译器不计算每个基本块的生存集,而只是提供一个函数来回答"这个变量在这个位置生存吗?">
为了寄存器分配的目的,LLVM的活跃度分析是在独立于目标的代码生成器中完成的,这意味着大部分代码可以在lib/CodeGen
目录中找到。特别是您可能对MachineBasicBlock::computeRegisterLiveness以及lib/CodeGen/LiveVariables.cpp
感兴趣