Do not replace results of musttail calls with a constant if the
call itself can't be removed.
Do not zap returns of musttail callees, if the call site can't be
removed and replaced with a constant.
Do not zap returns of musttail-calling blocks, this breaks
invariant too.
This is not the place where the actual replacement happens. I think we could keep the lattice value for the musttail call here and continue using it for solving. The replacement happens in tryToReplaceWithConstant. We could check for musttail calls there and do the replacement there.
This way, in case we can determine the return value of a function containing musttail calls, we still can use the return value at the callsite while solving.
Also, in case the musttail callee has no side effects, the call will be removed (D38856), and we could replace the result with the constant.