#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h"
#include "mlir/Conversion/GPUCommon/GPUCommonPass.h"
#include "mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h"
-#include "mlir/Conversion/GPUToSPIRV/GPUToSPIRVPass.h"
-#include "mlir/Conversion/GPUToVulkan/ConvertGPUToVulkanPass.h"
#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
-#include "mlir/Conversion/LLVMCommon/LoweringOptions.h"
-#include "mlir/Conversion/LinalgToLLVM/LinalgToLLVM.h"
#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
#include "mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h"
#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h"
#include "mlir/Conversion/VectorToSCF/VectorToSCF.h"
-#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
#include "mlir/Dialect/GPU/Transforms/Passes.h"
-#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
-#include "mlir/Dialect/LLVMIR/Transforms/RequestCWrappers.h"
-#include "mlir/Dialect/Linalg/Passes.h"
-#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/MemRef/Transforms/Passes.h"
-#include "mlir/Dialect/Vector/IR/VectorOps.h"
-#include "mlir/ExecutionEngine/JitRunner.h"
-#include "mlir/Pass/Pass.h"
#include "mlir/Pass/PassManager.h"
#include "mlir/Pass/PassOptions.h"
-#include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
-#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
#include "mlir/Transforms/Passes.h"
-#include "llvm/Support/InitLLVM.h"
-#include "llvm/Support/TargetSelect.h"
using namespace mlir;
pm.addNestedPass<gpu::GPUModuleOp>(createStripDebugInfoPass());
pm.addNestedPass<gpu::GPUModuleOp>(createConvertVectorToSCFPass());
- // Blanket-convert any remaining linalg ops to loops if any remain.
- pm.addNestedPass<gpu::GPUModuleOp>(createConvertLinalgToLoopsPass());
// Convert SCF to CF (always needed).
pm.addNestedPass<gpu::GPUModuleOp>(createConvertSCFToCFPass());
// Convert Math to LLVM (always needed).
// gpu::LaunchOp and gpu::HostRegisterOp.
// TODO: fix GPU layering.
pm.addNestedPass<func::FuncOp>(createConvertVectorToSCFPass());
- // Blanket-convert any remaining linalg ops to loops if any remain.
- pm.addNestedPass<func::FuncOp>(createConvertLinalgToLoopsPass());
// Convert SCF to CF (always needed).
pm.addNestedPass<func::FuncOp>(createConvertSCFToCFPass());
// Convert Math to LLVM (always needed).
"//llvm:NVPTXCodeGen",
"//llvm:Support",
"//mlir:AffineDialect",
+ "//mlir:AffineToStandard",
"//mlir:ArithDialect",
+ "//mlir:ArithToLLVM",
"//mlir:FuncDialect",
+ "//mlir:FuncToLLVM",
"//mlir:GPUDialect",
+ "//mlir:GPUToGPURuntimeTransforms",
+ "//mlir:GPUToNVVMTransforms",
"//mlir:GPUTransforms",
"//mlir:IR",
"//mlir:IndexDialect",
+ "//mlir:IndexToLLVM",
+ "//mlir:MathToLLVM",
"//mlir:MemRefDialect",
+ "//mlir:MemRefTransforms",
+ "//mlir:MemRefToLLVM",
+ "//mlir:NVGPUToNVVM",
"//mlir:NVVMToLLVMIRTranslation",
"//mlir:Pass",
+ "//mlir:ReconcileUnrealizedCasts",
"//mlir:ROCDLToLLVMIRTranslation",
"//mlir:SCFDialect",
+ "//mlir:SCFToControlFlow",
"//mlir:SPIRVDialect",
"//mlir:ToLLVMIRTranslation",
+ "//mlir:Transforms",
"//mlir:TransformUtils",
+ "//mlir:VectorDialect",
+ "//mlir:VectorToLLVM",
+ "//mlir:VectorToSCF",
],
)