函数的back()是否保证在LLVM中返回CFG的终结子基本块?
答案 0 :(得分:4)
我不认为,因为没有“终结者BB”这样的东西:很可能有多个BB被终止者终止。
答案 1 :(得分:1)
没有。可能存在函数的多个终止符基本块,例如包含多个返回语句的函数。然后,包含函数返回语句的每个基本块将被称为终结符块或终止符基本块。要检测作为终结器基本块的所有基本块(即包含return语句),请执行以下操作:
runOnFunction {
for BB in F:
for I in BB:
if (ReturnInst *RI = dyn_cast<ReturnInst> I)
BB is terminator Basic Block
endif
endfor
endfor
}