mirror of https://github.com/llvm/torch-mlir
30356c41c8
This pass incorporates torch.type_bound info and also removes NoneType returns (eventually it will rewrite tuple types too, but can't yet because !basicpy.TupleType doesn't track element types). Recommend looking at adjust-calling-conventions.mlir first to see what it is doing, and holding your nose for the implementation of the pass. I decided to implement this with the conversion framework, because it gives us *some* goodies for type conversion -- mainly avoiding large amounts of tricky RAUW dances. Unfortunately, the conversion framework isn't a perfect fit for a couple reasons: - the incorporation of torch.type_bound is a context-sensitive rewrite (requires looking at the arg attr, not just the type). - NoneType conversion is 1->0, which requires some special handling - (not implemented yet) 1->N tuple type conversions require special handling. It's a little bit scary, but on balance doing it the other way would have its own downsides. |
||
---|---|---|
.. | ||
adjust-calling-conventions.mlir | ||
globalize-object-graph-error.mlir | ||
globalize-object-graph-free-functions.mlir | ||
globalize-object-graph-initializers.mlir | ||
globalize-object-graph-methods.mlir | ||
globalize-object-graph-module-uses-error.mlir | ||
globalize-object-graph-module-uses.mlir | ||
globalize-object-graph-multiple-instances-error.mlir | ||
globalize-object-graph-multiple-instances-multiple-module-args.mlir | ||
globalize-object-graph-multiple-instances.mlir | ||
globalize-object-graph-submodules.mlir | ||
globalize-object-graph-visibility.mlir | ||
globalize-object-graph.mlir | ||
invalid.mlir | ||
ops.mlir | ||
prepare-for-globalize-object-graph.mlir |