text: //===- InitAllDialects.h - MLIR Dialects Registration -----------*- C++ -*-===//
  //
  // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  // See https://llvm.org/LICENSE.txt for license information.
  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  //
  //===----------------------------------------------------------------------===//
  //
  // This file defines a helper to trigger the registration of all dialects and
  // passes to the system.
  //
  //===----------------------------------------------------------------------===//
  
  #ifndef MLIR_INITALLDIALECTS_H_
  #define MLIR_INITALLDIALECTS_H_
  
  #include "mlir/Dialect/AVX512/AVX512Dialect.h"
  #include "mlir/Dialect/Affine/IR/AffineOps.h"
  #include "mlir/Dialect/Async/IR/Async.h"
  #include "mlir/Dialect/GPU/GPUDialect.h"
  #include "mlir/Dialect/LLVMIR/LLVMAVX512Dialect.h"
  #include "mlir/Dialect/LLVMIR/LLVMDialect.h"
  #include "mlir/Dialect/LLVMIR/NVVMDialect.h"
  #include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
  #include "mlir/Dialect/Linalg/IR/LinalgOps.h"
  #include "mlir/Dialect/OpenACC/OpenACC.h"
  #include "mlir/Dialect/OpenMP/OpenMPDialect.h"
  #include "mlir/Dialect/PDL/IR/PDL.h"
  #include "mlir/Dialect/PDLInterp/IR/PDLInterp.h"
  #include "mlir/Dialect/Quant/QuantOps.h"
  #include "mlir/Dialect/SCF/SCF.h"
  #include "mlir/Dialect/SDBM/SDBMDialect.h"
  #include "mlir/Dialect/SPIRV/SPIRVDialect.h"
  #include "mlir/Dialect/Shape/IR/Shape.h"
  #include "mlir/Dialect/StandardOps/IR/Ops.h"
  #include "mlir/Dialect/Vector/VectorOps.h"
  #include "mlir/IR/Dialect.h"
  
  namespace mlir {
  
  // Add all the MLIR dialects to the provided registry.
  inline void registerAllDialects(DialectRegistry &registry) {
    // clang-format off
    registry.insert<acc::OpenACCDialect,
                    AffineDialect,
                    async::AsyncDialect,
                    avx512::AVX512Dialect,
                    gpu::GPUDialect,
                    LLVM::LLVMAVX512Dialect,
                    LLVM::LLVMDialect,
                    linalg::LinalgDialect,
                    scf::SCFDialect,
                    omp::OpenMPDialect,
                    pdl::PDLDialect,
                    pdl_interp::PDLInterpDialect,
                    quant::QuantizationDialect,
                    spirv::SPIRVDialect,
                    StandardOpsDialect,
                    vector::VectorDialect,
                    NVVM::NVVMDialect,
                    ROCDL::ROCDLDialect,
                    SDBMDialect,
                    shape::ShapeDialect>();
    // clang-format on
  }
  
  // This function should be called before creating any MLIRContext if one expect
  // all the possible dialects to be made available to the context automatically.
  inline void registerAllDialects() {
    static bool initOnce =
        ([]() { registerAllDialects(getGlobalDialectRegistry()); }(), true);
    (void)initOnce;
  }
  } // namespace mlir
  
  #endif // MLIR_INITALLDIALECTS_H_
  