mirror of https://github.com/llvm/torch-mlir
a7252f9a06
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. |
||
---|---|---|
.. | ||
JITHelpers | ||
Runtime | ||
CMakeLists.txt | ||
LowerToLLVM.cpp | ||
LowerToRefbackrtABI.cpp | ||
PassDetail.h | ||
RefBackend.cpp |