opt -globaldce -deadargelim yields different result then when run separately

Hi,

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?

Thanks,
Torvald

This is probably a bug, please file an example in bugzilla, thanks!

-Chris

http://nondot.org/sabre
http://llvm.org