105 lines · cpp
1//===- RegisterAllPasses.cpp - MLIR Registration ----------------*- 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-exception6//7//===----------------------------------------------------------------------===//8//9// This file defines a helper to trigger the registration of all passes to the10// system.11//12//===----------------------------------------------------------------------===//13 14#include "mlir/InitAllPasses.h"15 16#include "mlir/Conversion/Passes.h"17#include "mlir/Dialect/AMDGPU/Transforms/Passes.h"18#include "mlir/Dialect/Affine/Passes.h"19#include "mlir/Dialect/Arith/Transforms/Passes.h"20#include "mlir/Dialect/ArmSME/Transforms/Passes.h"21#include "mlir/Dialect/ArmSVE/Transforms/Passes.h"22#include "mlir/Dialect/Async/Passes.h"23#include "mlir/Dialect/Bufferization/Pipelines/Passes.h"24#include "mlir/Dialect/Bufferization/Transforms/Passes.h"25#include "mlir/Dialect/EmitC/Transforms/Passes.h"26#include "mlir/Dialect/Func/Transforms/Passes.h"27#include "mlir/Dialect/GPU/Pipelines/Passes.h"28#include "mlir/Dialect/GPU/Transforms/Passes.h"29#include "mlir/Dialect/LLVMIR/Transforms/Passes.h"30#include "mlir/Dialect/Linalg/Passes.h"31#include "mlir/Dialect/MLProgram/Transforms/Passes.h"32#include "mlir/Dialect/Math/Transforms/Passes.h"33#include "mlir/Dialect/MemRef/Transforms/Passes.h"34#include "mlir/Dialect/NVGPU/Transforms/Passes.h"35#include "mlir/Dialect/OpenACC/Transforms/Passes.h"36#include "mlir/Dialect/OpenMP/Transforms/Passes.h"37#include "mlir/Dialect/Quant/Transforms/Passes.h"38#include "mlir/Dialect/SCF/Transforms/Passes.h"39#include "mlir/Dialect/SPIRV/Transforms/Passes.h"40#include "mlir/Dialect/Shape/Transforms/Passes.h"41#include "mlir/Dialect/Shard/Transforms/Passes.h"42#include "mlir/Dialect/SparseTensor/Pipelines/Passes.h"43#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"44#include "mlir/Dialect/Tensor/Transforms/Passes.h"45#include "mlir/Dialect/Tosa/Transforms/Passes.h"46#include "mlir/Dialect/Transform/Transforms/Passes.h"47#include "mlir/Dialect/Vector/Transforms/Passes.h"48#include "mlir/Dialect/XeGPU/Transforms/Passes.h"49#include "mlir/Target/LLVMIR/Transforms/Passes.h"50#include "mlir/Transforms/Passes.h"51 52// This function may be called to register the MLIR passes with the53// global registry.54// If you're building a compiler, you likely don't need this: you would build a55// pipeline programmatically without the need to register with the global56// registry, since it would already be calling the creation routine of the57// individual passes.58// The global registry is interesting to interact with the command-line tools.59void mlir::registerAllPasses() {60 // General passes61 registerTransformsPasses();62 63 // Conversion passes64 registerConversionPasses();65 66 // Dialect passes67 acc::registerOpenACCPasses();68 affine::registerAffinePasses();69 amdgpu::registerAMDGPUPasses();70 registerAsyncPasses();71 arith::registerArithPasses();72 bufferization::registerBufferizationPasses();73 func::registerFuncPasses();74 registerGPUPasses();75 registerLinalgPasses();76 registerNVGPUPasses();77 registerSparseTensorPasses();78 LLVM::registerLLVMPasses();79 LLVM::registerTargetLLVMIRTransformsPasses();80 math::registerMathPasses();81 memref::registerMemRefPasses();82 shard::registerShardPasses();83 ml_program::registerMLProgramPasses();84 omp::registerOpenMPPasses();85 quant::registerQuantPasses();86 registerSCFPasses();87 registerShapePasses();88 spirv::registerSPIRVPasses();89 tensor::registerTensorPasses();90 tosa::registerTosaOptPasses();91 transform::registerTransformPasses();92 vector::registerVectorPasses();93 arm_sme::registerArmSMEPasses();94 arm_sve::registerArmSVEPasses();95 emitc::registerEmitCPasses();96 xegpu::registerXeGPUPasses();97 98 // Dialect pipelines99 bufferization::registerBufferizationPipelines();100 sparse_tensor::registerSparseTensorPipelines();101 tosa::registerTosaToLinalgPipelines();102 gpu::registerGPUToNVVMPipeline();103 gpu::registerGPUToXeVMPipeline();104}105