gpt4 book ai didi

c++ - 如何识别 LLVM 位码中的循环?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:07:35 26 4
gpt4 key购买 nike

我有一个 LLVM 位码文件,我正在对它运行一个循环传递。每次到达循环(“runOnLoop”)时,我都会提取有关循环体的几条信息(即循环体中的指令数)并打印出来。但是,我需要一种方法将此信息与特定循环相关联 - 换句话说,我需要打印从中提取信息的循环的“名称”。

最佳答案

我不确定你所说的“名称”是什么意思,但一种方法是打印与循环锁存器 block 或类似内容相关联的调试信息(行号/列)。

另一种方法是使用元数据来唯一标识每个循环并将提取的信息与该标识符相关联。

我也有类似的需求,所以我创建了一个 pass为了那个原因。请注意,此方法对编译器优化很敏感,并且在发生这种情况时不会保留 ID(例如,如果内联包含循环的函数)。为了获得最佳结果(更接近源代码),请在使用 -O0 编译的 IR 上使用它。此外,当您完成信息收集后,还可以进行优化。

但是,对于简单的事情,我会采用第一种方法。

关于c++ - 如何识别 LLVM 位码中的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47242733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com