9 #ifndef MLIR_CONVERSION_CONVERTTOLLVM_TOLLVMINTERFACE_H
10 #define MLIR_CONVERSION_CONVERTTOLLVM_TOLLVMINTERFACE_H
17 class ConversionTarget;
18 class LLVMTypeConverter;
21 class RewritePatternSet;
22 class AnalysisManager;
65 #include "mlir/Conversion/ConvertToLLVM/ToLLVMAttrInterface.h.inc"
67 #include "mlir/Conversion/ConvertToLLVM/ToLLVMOpInterface.h.inc"
This class describes a specific conversion target.
Base class for dialect interfaces providing translation to LLVM IR.
virtual void populateConvertToLLVMConversionPatterns(ConversionTarget &target, LLVMTypeConverter &typeConverter, RewritePatternSet &patterns) const =0
Hook for derived dialect interface to provide conversion patterns and mark dialect legal for the conv...
virtual void loadDependentDialects(MLIRContext *context) const
Hook for derived dialect interface to load the dialects they target.
ConvertToLLVMPatternInterface(Dialect *dialect)
Dialects are groups of MLIR operations, types and attributes, as well as behavior associated with the...
Conversion from types to the LLVM IR dialect.
MLIRContext is the top-level object for a collection of MLIR operations.
Operation is the basic unit of execution within MLIR.
The base class used for all derived interface types.
Include the generated interface declarations.
void populateConversionTargetFromOperation(Operation *op, ConversionTarget &target, LLVMTypeConverter &typeConverter, RewritePatternSet &patterns)
Recursively walk the IR and collect all dialects implementing the interface, and populate the convers...
const FrozenRewritePatternSet & patterns
void populateOpConvertToLLVMConversionPatterns(Operation *op, ConversionTarget &target, LLVMTypeConverter &typeConverter, RewritePatternSet &patterns)
Helper function for populating LLVM conversion patterns.