Improve aten::backward handling (#36750)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/36750
- It seems the JIT schema for aten::backward and the schema in native_functions.yaml diverged on whether the retain_graph/keep_graph parameter takes a `bool` or a `bool?`. Make them identical again.
- Also remove the mutability annotation for the self parameter. This does not make sense together with AliasAnalysisKind::CONSERVATIVE and it triggered an assertion
- After fixing the mutability annotation, we can fix that assertion so that it doesn't exclude aten::backward from its check anymore
- Last but not least, remove the unboxed_only marker from aten::backward. This requires us to add a special case in register_c10_ops.cpp for it, because JIT still has its own implementation.
ghstack-source-id: 102351871
Test Plan: waitforsandcastle
Differential Revision: D21004102
fbshipit-source-id: 19bd1adbd8103c214d32e5126671a809adec581e