Don't allocate result Tensors in out overloads: at::kron_out() (#53640)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/53640
We have some operators that previously allowed you to pass in an undefined tensor to the out argument,
and then would go on to allocate that for you. This behavior is broken and doesn't work in JIT when things
are converted to/from IValues. Because of this, it blocks backend fallbacks because they force going
through IValue.
This PR is one in a series to remove that behavior and forces out arguments to be defined tensors.
It only looks at at::kron_out(), but there's more PRs for other ops.
BC Breaking: This breaks BC since those ops previously allowed calling with undefined tensors and that isn't allowed anymore.
ghstack-source-id: 125886981
(Note: this ignores all push blocking failures!)
Test Plan: waitforsandcastle
Reviewed By: bhosmer, ngimel
Differential Revision: D26921165
fbshipit-source-id: e61411226c12d33cb196a1e010ff733fe9fa6b7b