mirror of https://github.com/llvm/torch-mlir
340d8af28a
The canonicalizer converts `torch.prim.dtype` ops into integer constants for valid types, but the type may not be known until type refinement is complete. However, type refinement cannot make progress until `torch.prim.dtype` ops have been resolved to their corresponding integer constants, thus creating a circular dependency. This patch creates a tight coupling between type refinement and the lowering of `torch.prim.dtype` ops by handling such ops as they are encountered during type refinement. The unit test in this patch aims to check whether the type refinement pass can now handle chains of operations that alternate between type construction and type refinement. |
||
---|---|---|
.. | ||
AdjustCallingConventions.cpp | ||
CMakeLists.txt | ||
DecomposeComplexOps.cpp | ||
DropShapeCalculations.cpp | ||
GlobalizeObjectGraph.cpp | ||
InlineGlobalSlots.cpp | ||
MaximizeValueSemantics.cpp | ||
PassDetail.h | ||
Passes.cpp | ||
PrepareForGlobalizeObjectGraph.cpp | ||
ReduceOpVariants.cpp | ||
RefinePublicReturn.cpp | ||
RefineTypes.cpp | ||
ReifyShapeCalculations.cpp | ||
ShapeLibrary.cpp | ||
SimplifyShapeCalculations.cpp |