【问题标题】:Counting the number of LLVM instructions executed dynamically using LLI计算使用 LLI 动态执行的 LLVM 指令的数量
【发布时间】:2014-07-18 11:49:48
【问题描述】:

我想使用 lli 3.4 计算在任何程序中动态执行的 LLVM 指令的数量。

我检查了this 链接,但它没有提供任何与指令计数相关的信息。

【问题讨论】:

    标签: clang llvm llvm-clang llvm-ir


    【解决方案1】:

    在 LLVM 中没有内置的方法可以做到这一点,AFAIK。但是,您有许多简单的选择:

    1. 您可以破解解释器(lli 可以运行)来计算它执行了多少条指令。
    2. 您可以在运行 IR 之前通过在进入每个基本块时增加一个计数器来检测 IR。然后,您可以通过解释器或 JIT 运行检测的 IR。

    【讨论】:

    • 在您的第二个解决方案中:我们将如何找出每个基本块的工作量?也就是说,根据 bb 的“重量”程度,对每个计数器施加一定的权重,以便得出一个执行是否比另一个执行更多的工作。谢谢!
    • @Paschalis,我认为您可以先计算 BB 中存在的指令数量。然后可以在 BB 的末尾插入对外部函数的调用,该函数将此计数作为参数。通过这种方式,您将获得执行指令的确切计数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多