我的目标是确定 LLVM 函数的所有可能的退出点。我知道终止符指令结束基本块,要么退出函数,要么分支到同一函数的另一部分。终结者指令中,大部分我都清楚:
ret并resume退出该函数br, switch,indirectbr分支到同一功能中的其他块invoke,catchswitch与异常控制流程相关,也不应该退出该函数unreachable为此目的可以忽略)catchret我想就和寻求澄清cleanupret。我已经编译了示例异常处理代码(clang++在 Mac 和 Ubuntu 上),但在编译的 LLVM IR 中没有看到这些指令。这些仅用于特定 ABI 吗?
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |