【发布时间】:2012-03-14 14:03:14
【问题描述】:
Function 的 back() 是否保证返回 LLVM 中 CFG 的终止符基本块?
【问题讨论】:
标签: compiler-construction llvm
Function 的 back() 是否保证返回 LLVM 中 CFG 的终止符基本块?
【问题讨论】:
标签: compiler-construction llvm
我不认为,因为没有“终结者 BB”这样的东西:很可能有多个 BB 被返回终止。
【讨论】:
没有。一个函数可能有多个终止符基本块,例如一个包含多个返回语句的函数。每个包含函数返回语句的基本块将被称为终结器块或终结器基本块。要检测所有作为终止符基本块的基本块(即包含返回语句),请执行以下操作:
runOnFunction {
for BB in F:
for I in BB:
if (ReturnInst *RI = dyn_cast<ReturnInst> I)
BB is terminator Basic Block
endif
endfor
endfor
}
【讨论】: