Conversion to LLVM Dialect: integrate TypeConverter into LLVMLowering
Historically, the conversion from standard and built-in types to the LLVM IR dialect types was performed by a dedicated class, TypeConverter. This class served to contain references to the LLVM IR dialect and to the LLVM IR Module to allow querying the data layout. Recently, the LLVMLowering class was introduced to make the conversion to the LLVM IR dialect extensible to other source dialects. This class also includes the references to the LLVM IR dialect and module. TypeConverter was extended with basic support for dialect-specific type conversion through callbacks. This is not sufficient in cases where dialect-specific types appear inside other types, such as function or container types. Integrate TypeConverter into LLVMLowering. Whenever a subtype needs to be converted during standard type conversion (e.g. an argument or a result of a FunctionType), the conversion will call to the virtual function `LLVMLowering::convertType`, which can be extended to support dialect-specific types. Provide a new LLVMOpConversion class that serves as a base class for all conversions to the LLVM IR dialect and gives them access to LLVMLowering for the purpose of type conversion. Update Linalg to LLVM IR lowering to use this class. -- PiperOrigin-RevId: 247407314
Loading
Please sign in to comment