【问题标题】:locations of loops in source files源文件中循环的位置
【发布时间】:2011-04-22 04:06:12
【问题描述】:

在我的通行证中,我想知道循环的位置。比如在一个for循环中,比如:

for(int i=0; i<n; i++) { ... }

源文件中for(...)的行号是我感兴趣的,如果.bc文件是llvm-gcc用-O0生成的,我可以通过读取行​​号轻松得到这个信息循环的第一条指令。但是,如果使用-O3,则此方法不起作用。在这种情况下,我怎样才能获得循环位置?

【问题讨论】:

    标签: optimization compiler-construction llvm


    【解决方案1】:

    通常你不能,因为你的循环可能会被编译器转换(例如展开、反转等)

    【讨论】:

    • 但是可以将循环位置信息添加到指令的元数据中。我知道 IBM 的 XL 编译器能够做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    相关资源
    最近更新 更多