【发布时间】:2011-04-22 19:32:11
【问题描述】:
在 LLVM 通道中,我想记录一个循环的循环行程计数。我所做的一部分是在每个循环的标题块的终止符之前插入一个函数调用。我发现这个方法效果不好,因为如果一个循环有n次迭代,头块会被执行n+1次。这个事实适用于“for”和“while”循环,但不适用于“do while”循环。我将函数调用插入“for”和“while”循环的第二个块,以及“do while”循环的第一个块。仅当我先验地知道目标循环的类型时,这才有效,这通过纯位码是不可能的。我的问题是:是否有一种通用的方式(处理各种循环)来插入函数调用,该函数调用的调用次数与迭代次数完全相同。
【问题讨论】:
标签: optimization compiler-construction llvm