torch-mlir/lib/Backend/Common
Sean Silva a7252f9a06 Add basic support for lists.
This plumbs through a vertical slice of support for lists.

The main chunk of new code here is AnnotateABIPass which captures the
program signature at the Torch backend contract layer, right before we
start `TorchConversion`. The `TorchConversion` lowering process is lossy
w.r.t. types, so it's necessary to do this for all targets in general.
Like using `!iree.list` directly, we use IREE's ABI annotation
representation for this, although there is nothing very IREE-specific
about it (see
https://github.com/google/iree/blob/main/docs/developers/design_docs/function_abi.md)

We change `ListLiteralModule_basic` to use `!torch.int` because IREE
doesn't support f64 yet (and we don't yet have a way for users to say
that they want `!torch.float` to lower as f32).

Recommended review order:
- AnnotateABIPass and tests
- Arg marshaling in npcomp_backend.py and `iree.py`
- Updates to `list_programs.py` / `xfail_sets.py`
- Moving DeleteDeadIREEListsPass to Backend/Common, so that backends
  that don't support lists can use it. RefBackend uses that pass, for
  example.
2021-09-09 20:48:55 -07:00
..
CMakeLists.txt Add basic support for lists. 2021-09-09 20:48:55 -07:00
DeleteDeadIREELists.cpp Add basic support for lists. 2021-09-09 20:48:55 -07:00
PassDetail.h Add npcomp-verify-backend-contract pass. 2021-04-20 12:00:35 -07:00
Passes.cpp Add npcomp-verify-backend-contract pass. 2021-04-20 12:00:35 -07:00
VerifyBackendContract.cpp Add TorchToIREE and factor out TorchConversion dialect. 2021-08-16 15:01:58 -07:00