when I run opt -globaldce -deadargelim on a module, deadargelim removes less
arguments than when I run opt separately for the two passes. The module has
dead functions that hold references to other functions, which makes the
latter intrinsically live for deadargelim. -debug-pass=Executions shows no
other passes being run before deadargelim.
Why is that so?