【发布时间】:2017-11-06 16:11:05
【问题描述】:
我想识别 LLVM IR 中的 while 循环,我使用 LoopInfoWrapperPass 来获取 loopInfo。
LoopInfo &LoopInfo = getAnalysis(*F).getLoopInfo();
我没有找到相关的API来区分不同的循环类型。
【问题讨论】:
-
LoopInfo &LoopInfo = getAnalysis
(*F).getLoopInfo(); -
无法在 LLVM 级别区分 while 循环和等效的 for 循环,因为它们将生成完全相同的 LLVM 代码。
-
@sepp2k 非常感谢
-
@LingyunSITU:但是从基本块名你就可以识别出什么是哪个循环了
-
你想好怎么做了吗?
LoopInfo &LoopInfo = getAnalysis(*F).getLoopInfo();不提供 API 来区分不同类型的循环。此外,LLVM IR 代码不包含用于区分的指标。