获取LLVM中的函数将采用的循环总数

时间:2014-01-21 17:11:03

标签: llvm llvm-ir

假设我有一个LLVM IR中表示的函数,我想估计这个函数在我的机器上占用的cpu周期数。

我知道这是一个特定于架构的信息,但我想对某些规划目的进行粗略估计。

是否可以编写一个遍历函数中指令的pass并返回这些指令所需的循环总数?

会感激任何想法。

谢谢,

Kayhan

1 个答案:

答案 0 :(得分:4)

您可能对CostModel分析通道感兴趣。这是一个使用codegen估算与每条指令相关的成本的过程 - 您可以在函数中的每条指令上运行它,并总结这些值以粗略估计整个函数。

来自inline documentation

  

此文件定义成本模型分析。它为LLVM-IR提供了非常基本的成本估算。此分析使用codegen的服务来估算降低到机器指令时任何IR指令的成本。成本结果是无单位的,成本数字代表机器的吞吐量,假设所有负载都到达缓存,所有分支都是预测的等等。可以添加成本数字以便比较两个或更多变换备选方案。