MLIR 22.0.0git
mlir::cf Namespace Reference

Functions

void populateControlFlowToLLVMConversionPatterns (const LLVMTypeConverter &converter, RewritePatternSet &patterns)
 Collect the patterns to convert from the ControlFlow dialect to LLVM.
void populateAssertToLLVMConversionPattern (const LLVMTypeConverter &converter, RewritePatternSet &patterns, bool abortOnFailure=true, SymbolTableCollection *symbolTables=nullptr)
 Populate the cf.assert to LLVM conversion pattern.
void registerConvertControlFlowToLLVMInterface (DialectRegistry &registry)
void populateControlFlowToSPIRVPatterns (const SPIRVTypeConverter &typeConverter, RewritePatternSet &patterns)
 Appends to a pattern list additional patterns for translating ControlFLow ops to SPIR-V ops.
void registerBufferDeallocationOpInterfaceExternalModels (DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels (DialectRegistry &registry)
void populateCFStructuralTypeConversionsAndLegality (const TypeConverter &typeConverter, RewritePatternSet &patterns, ConversionTarget &target, PatternBenefit benefit=1)
 Populates patterns for CF structural type conversions and sets up the provided ConversionTarget with the appropriate legality configuration for the ops to get converted properly.
void populateCFStructuralTypeConversions (const TypeConverter &typeConverter, RewritePatternSet &patterns, PatternBenefit benefit=1)
 Similar to populateCFStructuralTypeConversionsAndLegality but does not populate the conversion target.
void populateCFStructuralTypeConversionTarget (const TypeConverter &typeConverter, ConversionTarget &target)
 Updates the ConversionTarget with dynamic legality of CF operations based on the provided type converter.

Function Documentation

◆ populateAssertToLLVMConversionPattern()

void mlir::cf::populateAssertToLLVMConversionPattern ( const LLVMTypeConverter & converter,
RewritePatternSet & patterns,
bool abortOnFailure = true,
SymbolTableCollection * symbolTables = nullptr )

Populate the cf.assert to LLVM conversion pattern.

If abortOnFailure is set to false, the program execution continues when a condition is unsatisfied.

Definition at line 247 of file ControlFlowToLLVM.cpp.

References mlir::patterns.

◆ populateCFStructuralTypeConversions()

void mlir::cf::populateCFStructuralTypeConversions ( const TypeConverter & typeConverter,
RewritePatternSet & patterns,
PatternBenefit benefit = 1 )

Similar to populateCFStructuralTypeConversionsAndLegality but does not populate the conversion target.

Definition at line 151 of file StructuralTypeConversions.cpp.

References mlir::patterns.

Referenced by populateCFStructuralTypeConversionsAndLegality().

◆ populateCFStructuralTypeConversionsAndLegality()

void mlir::cf::populateCFStructuralTypeConversionsAndLegality ( const TypeConverter & typeConverter,
RewritePatternSet & patterns,
ConversionTarget & target,
PatternBenefit benefit = 1 )

Populates patterns for CF structural type conversions and sets up the provided ConversionTarget with the appropriate legality configuration for the ops to get converted properly.

A "structural" type conversion is one where the underlying ops are completely agnostic to the actual types involved and simply need to update their types. An example of this is cf.br – the cf.br op needs to update its types accordingly to the TypeConverter, but otherwise does not care what type conversions are happening.

Definition at line 164 of file StructuralTypeConversions.cpp.

References mlir::patterns, populateCFStructuralTypeConversions(), populateCFStructuralTypeConversionTarget(), and target.

◆ populateCFStructuralTypeConversionTarget()

void mlir::cf::populateCFStructuralTypeConversionTarget ( const TypeConverter & typeConverter,
ConversionTarget & target )

Updates the ConversionTarget with dynamic legality of CF operations based on the provided type converter.

Definition at line 158 of file StructuralTypeConversions.cpp.

References target.

Referenced by populateCFStructuralTypeConversionsAndLegality().

◆ populateControlFlowToLLVMConversionPatterns()

void mlir::cf::populateControlFlowToLLVMConversionPatterns ( const LLVMTypeConverter & converter,
RewritePatternSet & patterns )

Collect the patterns to convert from the ControlFlow dialect to LLVM.

The conversion patterns capture the LLVMTypeConverter by reference meaning the references have to remain alive during the entire pattern lifetime.

Note: This function does not populate the default cf.assert lowering. That is because some platforms have a custom cf.assert lowering. The default lowering can be populated with populateAssertToLLVMConversionPattern.

Definition at line 237 of file ControlFlowToLLVM.cpp.

References mlir::patterns.

◆ populateControlFlowToSPIRVPatterns()

void mlir::cf::populateControlFlowToSPIRVPatterns ( const SPIRVTypeConverter & typeConverter,
RewritePatternSet & patterns )

Appends to a pattern list additional patterns for translating ControlFLow ops to SPIR-V ops.

Definition at line 108 of file ControlFlowToSPIRV.cpp.

References mlir::patterns.

◆ registerBufferDeallocationOpInterfaceExternalModels()

void mlir::cf::registerBufferDeallocationOpInterfaceExternalModels ( DialectRegistry & registry)

◆ registerBufferizableOpInterfaceExternalModels()

void mlir::cf::registerBufferizableOpInterfaceExternalModels ( DialectRegistry & registry)

◆ registerConvertControlFlowToLLVMInterface()

void mlir::cf::registerConvertControlFlowToLLVMInterface ( DialectRegistry & registry)

Definition at line 317 of file ControlFlowToLLVM.cpp.

References mlir::DialectRegistry::addExtension().

Referenced by mlir::registerAllExtensions().