With the addition of the willreturn attribute, functions that may
not return (e.g. due to an infinite loop) are well defined, if they are
not marked as willreturn.
This patch updates wouldInstructionBeTriviallyDead to not consider
calls that may not return as dead, unless they are in willreturn
functions.
This isn't right, MustProgress does not guarantee that the function returns. I'd suggest to take a look at the logic in isGuaranteedToTransferExecutionToSuccessor() (which should be replaced as well).