torch-mlir/include/npcomp
Sean Silva 79aade33da Make MaximizeValueSemantics a bit smarter.
This adds a pattern to MaximizeValueSemantics which does a simple
abstract interpretation within a block, which handles simple cases of
`torch.overwrite_tensor`, enough to remove all the unnecessary uses of
non-value tensors in ResNet right now.

Before/after IR:
[gist](https://gist.github.com/silvasean/a3e1ef625b19dfc63579f73cd3b543b6)

Also,
- Split `torch.copy.tensor` into `torch.copy.to_tensor` and
  `torch.copy.to_vtensor` which convert between value and non-value
  semantic tensors. This is a much cleaner factorization as they have
  very separate use cases and properties (e.g. different side effects)
- Remove the various canonicalization patterns they had, which were
  confusing because they resulted in limited forms of maximizing value
  semantics throughout the pipeline. We should structure our compilation
  pipeline such that only MaximizeValueSemantics should be maximizing
  value semantics.
- Adjust pass pipeline to only run MaximizeValueSemantics once.
- Make OverwriteTensorOp `$value` always be a value tensor and
  `$overwritten` be a non-value tensor.
2021-06-22 16:48:57 -07:00
..
Backend Bump llvm-project to 484b6648fdd4b104eaf7a2504dd07b60af2c9f8d 2021-04-22 18:12:55 -07:00
Conversion Significantly restructure torch/aten import design. 2021-05-19 13:37:39 -07:00
Dialect Make MaximizeValueSemantics a bit smarter. 2021-06-22 16:48:57 -07:00
Interfaces Add AllowsTypeRefinement trait and use it to improve RefineTypes 2021-04-30 10:57:02 -07:00
Python NFC: Delete npcomp python API and switch to upstream. 2021-01-08 10:46:24 -08:00
RefBackend Bump llvm-project to 484b6648fdd4b104eaf7a2504dd07b60af2c9f8d 2021-04-22 18:12:55 -07:00
Typing Bump llvm-project to 484b6648fdd4b104eaf7a2504dd07b60af2c9f8d 2021-04-22 18:12:55 -07:00
CMakeLists.txt Add npcomp-verify-backend-contract pass. 2021-04-20 12:00:35 -07:00
InitAll.h Bump submodule versions. 2020-09-08 13:26:42 -07:00