1 //===- ConvertFuncToLLVM.h - Convert Func to LLVM ---------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // Provides a set of conversion patterns from the Func dialect to the LLVM IR 10 // dialect. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef MLIR_CONVERSION_FUNCTOLLVM_CONVERTFUNCTOLLVM_H 15 #define MLIR_CONVERSION_FUNCTOLLVM_CONVERTFUNCTOLLVM_H 16 17 namespace mlir { 18 19 class LLVMTypeConverter; 20 class RewritePatternSet; 21 22 /// Collect the default pattern to convert a FuncOp to the LLVM dialect. If 23 /// `emitCWrappers` is set, the pattern will also produce functions 24 /// that pass memref descriptors by pointer-to-structure in addition to the 25 /// default unpacked form. 26 void populateFuncToLLVMFuncOpConversionPattern(LLVMTypeConverter &converter, 27 RewritePatternSet &patterns); 28 29 /// Collect the patterns to convert from the Func dialect to LLVM. The 30 /// conversion patterns capture the LLVMTypeConverter and the LowerToLLVMOptions 31 /// by reference meaning the references have to remain alive during the entire 32 /// pattern lifetime. 33 void populateFuncToLLVMConversionPatterns(LLVMTypeConverter &converter, 34 RewritePatternSet &patterns); 35 36 } // namespace mlir 37 38 #endif // MLIR_CONVERSION_FUNCTOLLVM_CONVERTFUNCTOLLVM_H 39