假设我有一个LLVM IR中表示的函数,我想估计这个函数在我的机器上占用的cpu周期数。
我知道这是一个特定于架构的信息,但我想对某些规划目的进行粗略估计。
是否可以编写一个遍历函数中指令的pass并返回这些指令所需的循环总数?
会感激任何想法。
谢谢,
Kayhan
答案 0 :(得分:4)
您可能对CostModel
分析通道感兴趣。这是一个使用codegen估算与每条指令相关的成本的过程 - 您可以在函数中的每条指令上运行它,并总结这些值以粗略估计整个函数。
此文件定义成本模型分析。它为LLVM-IR提供了非常基本的成本估算。此分析使用codegen的服务来估算降低到机器指令时任何IR指令的成本。成本结果是无单位的,成本数字代表机器的吞吐量,假设所有负载都到达缓存,所有分支都是预测的等等。可以添加成本数字以便比较两个或更多变换备选方案。