-prune-eh: Remove Unused Exception Handling Info
在了解这个 pass 之前需要学习的背景知识是 LLVM Pass Types 。
Description
-prune-eh pass 做的事有点像 -lowerinvoke ,都是把 invoke instruction 给 downgrade 成 call instruction。
不过 -prune-eh 是一个interprocedual pass,它通过 walk through program control-flow 的 call graph,check 当前 invoke 所调用的 function(i.e. callee)有没有抛出 exception,如果没有的话那么就把 invoke 给 downgrade 成 call。
相比于 -lowerinvoke , -prune-eh 的操作要更智能一些。
Code Example
多了个 check 过程,但是其工作方式和 -lowerinvoke 是一样的,都是把 invoke 给 downgrade 成 call ,所以这里例子看之前的 -lowerinvoke 的就好了,这里略一下。