Revert "[mlir][core] Move InitAll*** implementation into static library." (#151118)
Reverts llvm/llvm-project#150805 Some bots are failing.
This commit is contained in:
parent
ace42cf063
commit
7057eee481
@ -1,23 +1,26 @@
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
|
||||
include_directories(${LLVM_MAIN_SRC_DIR}/../mlir/include)
|
||||
include_directories(${CMAKE_BINARY_DIR}/tools/mlir/include)
|
||||
|
||||
set(LIBS
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
${test_libs}
|
||||
clangCIR
|
||||
clangCIRLoweringDirectToLLVM
|
||||
MLIRCIR
|
||||
MLIRAffineAnalysis
|
||||
MLIRAnalysis
|
||||
MLIRCIR
|
||||
MLIRDialect
|
||||
MLIRIR
|
||||
MLIRLspServerLib
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllPasses
|
||||
MLIRSupport
|
||||
MLIRTransformUtils
|
||||
MLIRTransforms
|
||||
MLIRTransformUtils
|
||||
MLIRSupport
|
||||
MLIRIR
|
||||
)
|
||||
|
||||
add_mlir_tool(cir-lsp-server
|
||||
|
||||
@ -17,12 +17,11 @@
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
|
||||
#include "mlir/Dialect/MemRef/IR/MemRef.h"
|
||||
#include "mlir/IR/BuiltinDialect.h"
|
||||
#include "mlir/InitAllPasses.h"
|
||||
#include "mlir/Pass/PassManager.h"
|
||||
#include "mlir/Pass/PassOptions.h"
|
||||
#include "mlir/Pass/PassRegistry.h"
|
||||
#include "mlir/Tools/mlir-opt/MlirOptMain.h"
|
||||
#include "mlir/Transforms/Passes.h"
|
||||
#include "clang/CIR/Dialect/IR/CIRDialect.h"
|
||||
#include "clang/CIR/Dialect/Passes.h"
|
||||
#include "clang/CIR/Passes.h"
|
||||
|
||||
@ -20,20 +20,12 @@
|
||||
#include "flang/Optimizer/OpenACC/Support/RegisterOpenACCExtensions.h"
|
||||
#include "flang/Optimizer/OpenMP/Support/RegisterOpenMPExtensions.h"
|
||||
#include "mlir/Conversion/Passes.h"
|
||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||
#include "mlir/Dialect/Affine/Passes.h"
|
||||
#include "mlir/Dialect/Complex/IR/Complex.h"
|
||||
#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h"
|
||||
#include "mlir/Dialect/DLTI/DLTI.h"
|
||||
#include "mlir/Dialect/Func/Extensions/InlinerExtension.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/Dialect/Index/IR/IndexDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/NVVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Math/IR/Math.h"
|
||||
#include "mlir/Dialect/OpenACC/OpenACC.h"
|
||||
#include "mlir/Dialect/OpenACC/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SCF/IR/SCF.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/Passes.h"
|
||||
#include "mlir/InitAllDialects.h"
|
||||
#include "mlir/Pass/Pass.h"
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
|
||||
add_flang_library(FIRSupport
|
||||
DataLayout.cpp
|
||||
InitFIR.cpp
|
||||
@ -20,12 +23,12 @@ add_flang_library(FIRSupport
|
||||
${extension_libs}
|
||||
|
||||
MLIR_LIBS
|
||||
${dialect_libs}
|
||||
${extension_libs}
|
||||
MLIRBuiltinToLLVMIRTranslation
|
||||
MLIRLLVMToLLVMIRTranslation
|
||||
MLIROpenACCToLLVMIRTranslation
|
||||
MLIROpenMPToLLVMIRTranslation
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRLLVMToLLVMIRTranslation
|
||||
MLIRTargetLLVMIRExport
|
||||
MLIRTargetLLVMIRImport
|
||||
)
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
set(LIBS
|
||||
MLIRArithDialect
|
||||
MLIROptLib
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllPasses
|
||||
MLIRStandalone
|
||||
)
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
MLIRArithDialect
|
||||
MLIROptLib
|
||||
MLIRStandalone
|
||||
)
|
||||
add_llvm_executable(standalone-opt standalone-opt.cpp)
|
||||
|
||||
llvm_update_compile_flags(standalone-opt)
|
||||
|
||||
@ -6,8 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/Dialect/Arith/IR/Arith.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/IR/MLIRContext.h"
|
||||
#include "mlir/InitAllDialects.h"
|
||||
#include "mlir/InitAllPasses.h"
|
||||
|
||||
@ -27,8 +27,12 @@ add_toy_chapter(toyc-ch5
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
target_link_libraries(toyc-ch5
|
||||
PRIVATE
|
||||
${dialect_libs}
|
||||
${extension_libs}
|
||||
MLIRAnalysis
|
||||
MLIRCallInterfaces
|
||||
MLIRCastInterfaces
|
||||
@ -36,9 +40,6 @@ target_link_libraries(toyc-ch5
|
||||
MLIRIR
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRSideEffectInterfaces
|
||||
MLIRSupport
|
||||
MLIRTransforms
|
||||
)
|
||||
MLIRTransforms)
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/Dialect/Func/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/IR/Diagnostics.h"
|
||||
#include "toy/AST.h"
|
||||
#include "toy/Dialect.h"
|
||||
|
||||
@ -37,8 +37,14 @@ add_toy_chapter(toyc-ch6
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
target_link_libraries(toyc-ch6
|
||||
PRIVATE
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
${extension_libs}
|
||||
MLIRAnalysis
|
||||
MLIRBuiltinToLLVMIRTranslation
|
||||
MLIRCallInterfaces
|
||||
@ -52,11 +58,8 @@ target_link_libraries(toyc-ch6
|
||||
MLIRMemRefDialect
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRRegisterAllPasses
|
||||
MLIRSideEffectInterfaces
|
||||
MLIRSupport
|
||||
MLIRTargetLLVMIRExport
|
||||
MLIRTransforms
|
||||
)
|
||||
)
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/Dialect/Func/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h"
|
||||
#include "toy/AST.h"
|
||||
|
||||
@ -36,8 +36,14 @@ add_toy_chapter(toyc-ch7
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
target_link_libraries(toyc-ch7
|
||||
PRIVATE
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
${extension_libs}
|
||||
MLIRAnalysis
|
||||
MLIRBuiltinToLLVMIRTranslation
|
||||
MLIRCallInterfaces
|
||||
@ -50,10 +56,7 @@ target_link_libraries(toyc-ch7
|
||||
MLIRMemRefDialect
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRRegisterAllPasses
|
||||
MLIRSideEffectInterfaces
|
||||
MLIRTargetLLVMIRExport
|
||||
MLIRTransforms
|
||||
)
|
||||
)
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/Dialect/Func/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h"
|
||||
#include "toy/AST.h"
|
||||
|
||||
@ -1,14 +1,18 @@
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
|
||||
set(LIBS
|
||||
MLIRAnalysis
|
||||
MLIRIR
|
||||
MLIRParser
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRRegisterAllPasses
|
||||
MLIRSupport
|
||||
MLIRTransformDialect
|
||||
MLIRTransformDialectTransforms
|
||||
MLIRTransforms
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
${extension_libs}
|
||||
)
|
||||
|
||||
add_mlir_tool(mlir-transform-opt
|
||||
|
||||
@ -22,7 +22,6 @@
|
||||
#include "mlir/Tools/mlir-opt/MlirOptMain.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/SourceMgr.h"
|
||||
#include "llvm/Support/ToolOutputFile.h"
|
||||
#include <cstdlib>
|
||||
|
||||
@ -14,15 +14,200 @@
|
||||
#ifndef MLIR_INITALLDIALECTS_H_
|
||||
#define MLIR_INITALLDIALECTS_H_
|
||||
|
||||
#include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h"
|
||||
#include "mlir/Dialect/AMX/AMXDialect.h"
|
||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||
#include "mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/IR/Arith.h"
|
||||
#include "mlir/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/BufferViewFlowOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h"
|
||||
#include "mlir/Dialect/ArmNeon/ArmNeonDialect.h"
|
||||
#include "mlir/Dialect/ArmSME/IR/ArmSME.h"
|
||||
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
|
||||
#include "mlir/Dialect/Async/IR/Async.h"
|
||||
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
|
||||
#include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Complex/IR/Complex.h"
|
||||
#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h"
|
||||
#include "mlir/Dialect/ControlFlow/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/DLTI/DLTI.h"
|
||||
#include "mlir/Dialect/EmitC/IR/EmitC.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
|
||||
#include "mlir/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/GPU/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/IRDL/IR/IRDL.h"
|
||||
#include "mlir/Dialect/Index/IR/IndexDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/NVVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h"
|
||||
#include "mlir/Dialect/LLVMIR/XeVMDialect.h"
|
||||
#include "mlir/Dialect/Linalg/IR/Linalg.h"
|
||||
#include "mlir/Dialect/Linalg/Transforms/AllInterfaces.h"
|
||||
#include "mlir/Dialect/Linalg/Transforms/RuntimeOpVerification.h"
|
||||
#include "mlir/Dialect/MLProgram/IR/MLProgram.h"
|
||||
#include "mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MPI/IR/MPI.h"
|
||||
#include "mlir/Dialect/Math/IR/Math.h"
|
||||
#include "mlir/Dialect/MemRef/IR/MemRef.h"
|
||||
#include "mlir/Dialect/MemRef/IR/MemRefMemorySlot.h"
|
||||
#include "mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h"
|
||||
#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.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/Ptr/IR/PtrDialect.h"
|
||||
#include "mlir/Dialect/Quant/IR/Quant.h"
|
||||
#include "mlir/Dialect/SCF/IR/SCF.h"
|
||||
#include "mlir/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/SMT/IR/SMTDialect.h"
|
||||
#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h"
|
||||
#include "mlir/Dialect/Shape/IR/Shape.h"
|
||||
#include "mlir/Dialect/Shape/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Shard/IR/ShardDialect.h"
|
||||
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
|
||||
#include "mlir/Dialect/SparseTensor/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/IR/Tensor.h"
|
||||
#include "mlir/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/IR/TensorTilingInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/RuntimeOpVerification.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/SubsetInsertionOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tosa/IR/ShardingInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tosa/IR/TosaOps.h"
|
||||
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
|
||||
#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h"
|
||||
#include "mlir/Dialect/UB/IR/UBOps.h"
|
||||
#include "mlir/Dialect/Vector/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Vector/IR/VectorOps.h"
|
||||
#include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Vector/Transforms/SubsetOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/X86Vector/X86VectorDialect.h"
|
||||
#include "mlir/Dialect/XeGPU/IR/XeGPU.h"
|
||||
#include "mlir/IR/Dialect.h"
|
||||
#include "mlir/Interfaces/CastInterfaces.h"
|
||||
#include "mlir/Target/LLVM/NVVM/Target.h"
|
||||
#include "mlir/Target/LLVM/ROCDL/Target.h"
|
||||
#include "mlir/Target/SPIRV/Target.h"
|
||||
|
||||
namespace mlir {
|
||||
class DialectRegistry;
|
||||
class MLIRContext;
|
||||
|
||||
/// Add all the MLIR dialects to the provided registry.
|
||||
void registerAllDialects(DialectRegistry ®istry);
|
||||
inline void registerAllDialects(DialectRegistry ®istry) {
|
||||
// clang-format off
|
||||
registry.insert<acc::OpenACCDialect,
|
||||
affine::AffineDialect,
|
||||
amdgpu::AMDGPUDialect,
|
||||
amx::AMXDialect,
|
||||
arith::ArithDialect,
|
||||
arm_neon::ArmNeonDialect,
|
||||
arm_sme::ArmSMEDialect,
|
||||
arm_sve::ArmSVEDialect,
|
||||
async::AsyncDialect,
|
||||
bufferization::BufferizationDialect,
|
||||
cf::ControlFlowDialect,
|
||||
complex::ComplexDialect,
|
||||
DLTIDialect,
|
||||
emitc::EmitCDialect,
|
||||
func::FuncDialect,
|
||||
gpu::GPUDialect,
|
||||
index::IndexDialect,
|
||||
irdl::IRDLDialect,
|
||||
linalg::LinalgDialect,
|
||||
LLVM::LLVMDialect,
|
||||
math::MathDialect,
|
||||
memref::MemRefDialect,
|
||||
shard::ShardDialect,
|
||||
ml_program::MLProgramDialect,
|
||||
mpi::MPIDialect,
|
||||
nvgpu::NVGPUDialect,
|
||||
NVVM::NVVMDialect,
|
||||
omp::OpenMPDialect,
|
||||
pdl::PDLDialect,
|
||||
pdl_interp::PDLInterpDialect,
|
||||
ptr::PtrDialect,
|
||||
quant::QuantDialect,
|
||||
ROCDL::ROCDLDialect,
|
||||
scf::SCFDialect,
|
||||
shape::ShapeDialect,
|
||||
smt::SMTDialect,
|
||||
sparse_tensor::SparseTensorDialect,
|
||||
spirv::SPIRVDialect,
|
||||
tensor::TensorDialect,
|
||||
tosa::TosaDialect,
|
||||
transform::TransformDialect,
|
||||
ub::UBDialect,
|
||||
vector::VectorDialect,
|
||||
x86vector::X86VectorDialect,
|
||||
xegpu::XeGPUDialect,
|
||||
xevm::XeVMDialect>();
|
||||
// clang-format on
|
||||
|
||||
// Register all external models.
|
||||
affine::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
arith::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
arith::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
arith::registerBufferViewFlowOpInterfaceExternalModels(registry);
|
||||
arith::registerShardingInterfaceExternalModels(registry);
|
||||
arith::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(
|
||||
registry);
|
||||
builtin::registerCastOpInterfaceExternalModels(registry);
|
||||
cf::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
cf::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
gpu::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
gpu::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
LLVM::registerInlinerInterface(registry);
|
||||
NVVM::registerInlinerInterface(registry);
|
||||
linalg::registerAllDialectInterfaceImplementations(registry);
|
||||
linalg::registerRuntimeVerifiableOpInterfaceExternalModels(registry);
|
||||
memref::registerAllocationOpInterfaceExternalModels(registry);
|
||||
memref::registerBufferViewFlowOpInterfaceExternalModels(registry);
|
||||
memref::registerRuntimeVerifiableOpInterfaceExternalModels(registry);
|
||||
memref::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
memref::registerMemorySlotExternalModels(registry);
|
||||
ml_program::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
scf::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
scf::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
scf::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
shape::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
sparse_tensor::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
tensor::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
tensor::registerFindPayloadReplacementOpInterfaceExternalModels(registry);
|
||||
tensor::registerInferTypeOpInterfaceExternalModels(registry);
|
||||
tensor::registerRuntimeVerifiableOpInterfaceExternalModels(registry);
|
||||
tensor::registerSubsetOpInterfaceExternalModels(registry);
|
||||
tensor::registerTilingInterfaceExternalModels(registry);
|
||||
tensor::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
tosa::registerShardingInterfaceExternalModels(registry);
|
||||
vector::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
vector::registerSubsetOpInterfaceExternalModels(registry);
|
||||
vector::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
NVVM::registerNVVMTargetInterfaceExternalModels(registry);
|
||||
ROCDL::registerROCDLTargetInterfaceExternalModels(registry);
|
||||
spirv::registerSPIRVTargetInterfaceExternalModels(registry);
|
||||
}
|
||||
|
||||
/// Append all the MLIR dialects to the registry contained in the given context.
|
||||
void registerAllDialects(MLIRContext &context);
|
||||
inline void registerAllDialects(MLIRContext &context) {
|
||||
DialectRegistry registry;
|
||||
registerAllDialects(registry);
|
||||
context.appendDialectRegistry(registry);
|
||||
}
|
||||
|
||||
} // namespace mlir
|
||||
|
||||
|
||||
@ -14,15 +14,110 @@
|
||||
#ifndef MLIR_INITALLEXTENSIONS_H_
|
||||
#define MLIR_INITALLEXTENSIONS_H_
|
||||
|
||||
#include "mlir/Conversion/ArithToEmitC/ArithToEmitC.h"
|
||||
#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
|
||||
#include "mlir/Conversion/ComplexToLLVM/ComplexToLLVM.h"
|
||||
#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
|
||||
#include "mlir/Conversion/FuncToEmitC/FuncToEmitC.h"
|
||||
#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
|
||||
#include "mlir/Conversion/GPUCommon/GPUToLLVM.h"
|
||||
#include "mlir/Conversion/GPUToNVVM/GPUToNVVM.h"
|
||||
#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
|
||||
#include "mlir/Conversion/MPIToLLVM/MPIToLLVM.h"
|
||||
#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
|
||||
#include "mlir/Conversion/MemRefToEmitC/MemRefToEmitC.h"
|
||||
#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
|
||||
#include "mlir/Conversion/NVVMToLLVM/NVVMToLLVM.h"
|
||||
#include "mlir/Conversion/OpenMPToLLVM/ConvertOpenMPToLLVM.h"
|
||||
#include "mlir/Conversion/SCFToEmitC/SCFToEmitC.h"
|
||||
#include "mlir/Conversion/UBToLLVM/UBToLLVM.h"
|
||||
#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h"
|
||||
#include "mlir/Conversion/XeVMToLLVM/XeVMToLLVM.h"
|
||||
#include "mlir/Dialect/AMX/Transforms.h"
|
||||
#include "mlir/Dialect/Affine/TransformOps/AffineTransformOps.h"
|
||||
#include "mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.h"
|
||||
#include "mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.h"
|
||||
#include "mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h"
|
||||
#include "mlir/Dialect/DLTI/TransformOps/DLTITransformOps.h"
|
||||
#include "mlir/Dialect/Func/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Func/TransformOps/FuncTransformOps.h"
|
||||
#include "mlir/Dialect/GPU/TransformOps/GPUTransformOps.h"
|
||||
#include "mlir/Dialect/Linalg/TransformOps/DialectExtension.h"
|
||||
#include "mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.h"
|
||||
#include "mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h"
|
||||
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
|
||||
#include "mlir/Dialect/SparseTensor/TransformOps/SparseTensorTransformOps.h"
|
||||
#include "mlir/Dialect/Tensor/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h"
|
||||
#include "mlir/Dialect/Transform/DebugExtension/DebugExtension.h"
|
||||
#include "mlir/Dialect/Transform/IRDLExtension/IRDLExtension.h"
|
||||
#include "mlir/Dialect/Transform/LoopExtension/LoopExtension.h"
|
||||
#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h"
|
||||
#include "mlir/Dialect/Transform/TuneExtension/TuneExtension.h"
|
||||
#include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.h"
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
namespace mlir {
|
||||
class DialectRegistry;
|
||||
|
||||
/// This function may be called to register all MLIR dialect extensions with the
|
||||
/// provided registry.
|
||||
/// If you're building a compiler, you generally shouldn't use this: you would
|
||||
/// individually register the specific extensions that are useful for the
|
||||
/// pipelines and transformations you are using.
|
||||
void registerAllExtensions(DialectRegistry ®istry);
|
||||
inline void registerAllExtensions(DialectRegistry ®istry) {
|
||||
// Register all conversions to LLVM extensions.
|
||||
registerConvertArithToEmitCInterface(registry);
|
||||
arith::registerConvertArithToLLVMInterface(registry);
|
||||
registerConvertComplexToLLVMInterface(registry);
|
||||
cf::registerConvertControlFlowToLLVMInterface(registry);
|
||||
func::registerAllExtensions(registry);
|
||||
tensor::registerAllExtensions(registry);
|
||||
registerConvertFuncToEmitCInterface(registry);
|
||||
registerConvertFuncToLLVMInterface(registry);
|
||||
index::registerConvertIndexToLLVMInterface(registry);
|
||||
registerConvertMathToLLVMInterface(registry);
|
||||
mpi::registerConvertMPIToLLVMInterface(registry);
|
||||
registerConvertMemRefToEmitCInterface(registry);
|
||||
registerConvertMemRefToLLVMInterface(registry);
|
||||
registerConvertNVVMToLLVMInterface(registry);
|
||||
registerConvertOpenMPToLLVMInterface(registry);
|
||||
registerConvertSCFToEmitCInterface(registry);
|
||||
ub::registerConvertUBToLLVMInterface(registry);
|
||||
registerConvertAMXToLLVMInterface(registry);
|
||||
gpu::registerConvertGpuToLLVMInterface(registry);
|
||||
NVVM::registerConvertGpuToNVVMInterface(registry);
|
||||
vector::registerConvertVectorToLLVMInterface(registry);
|
||||
registerConvertXeVMToLLVMInterface(registry);
|
||||
|
||||
// Register all transform dialect extensions.
|
||||
affine::registerTransformDialectExtension(registry);
|
||||
bufferization::registerTransformDialectExtension(registry);
|
||||
dlti::registerTransformDialectExtension(registry);
|
||||
func::registerTransformDialectExtension(registry);
|
||||
gpu::registerTransformDialectExtension(registry);
|
||||
linalg::registerTransformDialectExtension(registry);
|
||||
memref::registerTransformDialectExtension(registry);
|
||||
nvgpu::registerTransformDialectExtension(registry);
|
||||
scf::registerTransformDialectExtension(registry);
|
||||
sparse_tensor::registerTransformDialectExtension(registry);
|
||||
tensor::registerTransformDialectExtension(registry);
|
||||
transform::registerDebugExtension(registry);
|
||||
transform::registerIRDLExtension(registry);
|
||||
transform::registerLoopExtension(registry);
|
||||
transform::registerPDLExtension(registry);
|
||||
transform::registerTuneExtension(registry);
|
||||
vector::registerTransformDialectExtension(registry);
|
||||
arm_neon::registerTransformDialectExtension(registry);
|
||||
arm_sve::registerTransformDialectExtension(registry);
|
||||
|
||||
// Translation extensions need to be registered by calling
|
||||
// `registerAllToLLVMIRTranslations` (see All.h).
|
||||
}
|
||||
|
||||
} // namespace mlir
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
//===- InitAllPasses.h - MLIR Registration ----------------------*- C++ -*-===//
|
||||
//===- LinkAllPassesAndDialects.h - MLIR 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.
|
||||
@ -6,14 +6,50 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file defines a helper to trigger the registration of all passes to the
|
||||
// system.
|
||||
// This file defines a helper to trigger the registration of all dialects and
|
||||
// passes to the system.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef MLIR_INITALLPASSES_H_
|
||||
#define MLIR_INITALLPASSES_H_
|
||||
|
||||
#include "mlir/Conversion/Passes.h"
|
||||
#include "mlir/Dialect/AMDGPU/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Affine/Passes.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/ArmSME/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/ArmSVE/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Async/Passes.h"
|
||||
#include "mlir/Dialect/Bufferization/Pipelines/Passes.h"
|
||||
#include "mlir/Dialect/Bufferization/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/EmitC/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Func/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/GPU/Pipelines/Passes.h"
|
||||
#include "mlir/Dialect/GPU/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Linalg/Passes.h"
|
||||
#include "mlir/Dialect/MLProgram/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Math/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/NVGPU/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/OpenACC/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Quant/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SPIRV/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Shape/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Shard/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SparseTensor/Pipelines/Passes.h"
|
||||
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Tosa/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Transform/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Vector/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/XeGPU/Transforms/Passes.h"
|
||||
#include "mlir/Transforms/Passes.h"
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
namespace mlir {
|
||||
|
||||
// This function may be called to register the MLIR passes with the
|
||||
@ -23,7 +59,49 @@ namespace mlir {
|
||||
// registry, since it would already be calling the creation routine of the
|
||||
// individual passes.
|
||||
// The global registry is interesting to interact with the command-line tools.
|
||||
void registerAllPasses();
|
||||
inline void registerAllPasses() {
|
||||
// General passes
|
||||
registerTransformsPasses();
|
||||
|
||||
// Conversion passes
|
||||
registerConversionPasses();
|
||||
|
||||
// Dialect passes
|
||||
acc::registerOpenACCPasses();
|
||||
affine::registerAffinePasses();
|
||||
amdgpu::registerAMDGPUPasses();
|
||||
registerAsyncPasses();
|
||||
arith::registerArithPasses();
|
||||
bufferization::registerBufferizationPasses();
|
||||
func::registerFuncPasses();
|
||||
registerGPUPasses();
|
||||
registerLinalgPasses();
|
||||
registerNVGPUPasses();
|
||||
registerSparseTensorPasses();
|
||||
LLVM::registerLLVMPasses();
|
||||
math::registerMathPasses();
|
||||
memref::registerMemRefPasses();
|
||||
shard::registerShardPasses();
|
||||
ml_program::registerMLProgramPasses();
|
||||
quant::registerQuantPasses();
|
||||
registerSCFPasses();
|
||||
registerShapePasses();
|
||||
spirv::registerSPIRVPasses();
|
||||
tensor::registerTensorPasses();
|
||||
tosa::registerTosaOptPasses();
|
||||
transform::registerTransformPasses();
|
||||
vector::registerVectorPasses();
|
||||
arm_sme::registerArmSMEPasses();
|
||||
arm_sve::registerArmSVEPasses();
|
||||
emitc::registerEmitCPasses();
|
||||
xegpu::registerXeGPUPasses();
|
||||
|
||||
// Dialect pipelines
|
||||
bufferization::registerBufferizationPipelines();
|
||||
sparse_tensor::registerSparseTensorPipelines();
|
||||
tosa::registerTosaToLinalgPipelines();
|
||||
gpu::registerGPUToNVVMPipeline();
|
||||
}
|
||||
|
||||
} // namespace mlir
|
||||
|
||||
|
||||
@ -1,16 +1,19 @@
|
||||
# Dialect registration.
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(translation_libs GLOBAL PROPERTY MLIR_TRANSLATION_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
add_mlir_upstream_c_api_library(MLIRCAPIRegisterEverything
|
||||
RegisterEverything.cpp
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
${dialect_libs}
|
||||
${translation_libs}
|
||||
${conversion_libs}
|
||||
${extension_libs}
|
||||
|
||||
MLIRBuiltinToLLVMIRTranslation
|
||||
MLIRCAPIIR
|
||||
MLIRCAPITransforms
|
||||
MLIRLLVMToLLVMIRTranslation
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRRegisterAllPasses
|
||||
MLIRCAPITransforms
|
||||
)
|
||||
|
||||
@ -20,35 +20,3 @@ add_subdirectory(Target)
|
||||
add_subdirectory(Tools)
|
||||
add_subdirectory(Transforms)
|
||||
add_subdirectory(ExecutionEngine)
|
||||
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
|
||||
add_mlir_library(MLIRRegisterAllDialects
|
||||
RegisterAllDialects.cpp
|
||||
|
||||
PARTIAL_SOURCES_INTENDED
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
${dialect_libs}
|
||||
)
|
||||
|
||||
add_mlir_library(MLIRRegisterAllPasses
|
||||
RegisterAllPasses.cpp
|
||||
|
||||
PARTIAL_SOURCES_INTENDED
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
${dialect_libs} # Some passes are part of the dialect libs
|
||||
${conversion_libs}
|
||||
)
|
||||
|
||||
add_mlir_library(MLIRRegisterAllExtensions
|
||||
RegisterAllExtensions.cpp
|
||||
|
||||
PARTIAL_SOURCES_INTENDED
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
${extension_libs}
|
||||
)
|
||||
|
||||
@ -1,207 +0,0 @@
|
||||
//===- RegisterAllDialects.cpp - 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.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/InitAllDialects.h"
|
||||
|
||||
#include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h"
|
||||
#include "mlir/Dialect/AMX/AMXDialect.h"
|
||||
#include "mlir/Dialect/Affine/IR/AffineOps.h"
|
||||
#include "mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/IR/Arith.h"
|
||||
#include "mlir/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/BufferViewFlowOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h"
|
||||
#include "mlir/Dialect/ArmNeon/ArmNeonDialect.h"
|
||||
#include "mlir/Dialect/ArmSME/IR/ArmSME.h"
|
||||
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
|
||||
#include "mlir/Dialect/Async/IR/Async.h"
|
||||
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
|
||||
#include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Complex/IR/Complex.h"
|
||||
#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h"
|
||||
#include "mlir/Dialect/ControlFlow/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/DLTI/DLTI.h"
|
||||
#include "mlir/Dialect/EmitC/IR/EmitC.h"
|
||||
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
||||
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
|
||||
#include "mlir/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/GPU/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/IRDL/IR/IRDL.h"
|
||||
#include "mlir/Dialect/Index/IR/IndexDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/NVVMDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h"
|
||||
#include "mlir/Dialect/LLVMIR/XeVMDialect.h"
|
||||
#include "mlir/Dialect/Linalg/IR/Linalg.h"
|
||||
#include "mlir/Dialect/Linalg/Transforms/AllInterfaces.h"
|
||||
#include "mlir/Dialect/Linalg/Transforms/RuntimeOpVerification.h"
|
||||
#include "mlir/Dialect/MLProgram/IR/MLProgram.h"
|
||||
#include "mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MPI/IR/MPI.h"
|
||||
#include "mlir/Dialect/Math/IR/Math.h"
|
||||
#include "mlir/Dialect/MemRef/IR/MemRef.h"
|
||||
#include "mlir/Dialect/MemRef/IR/MemRefMemorySlot.h"
|
||||
#include "mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h"
|
||||
#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.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/Ptr/IR/PtrDialect.h"
|
||||
#include "mlir/Dialect/Quant/IR/Quant.h"
|
||||
#include "mlir/Dialect/SCF/IR/SCF.h"
|
||||
#include "mlir/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/BufferDeallocationOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/SMT/IR/SMTDialect.h"
|
||||
#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h"
|
||||
#include "mlir/Dialect/Shape/IR/Shape.h"
|
||||
#include "mlir/Dialect/Shape/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Shard/IR/ShardDialect.h"
|
||||
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
|
||||
#include "mlir/Dialect/SparseTensor/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/IR/Tensor.h"
|
||||
#include "mlir/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/IR/TensorTilingInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/RuntimeOpVerification.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/SubsetInsertionOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tosa/IR/ShardingInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Tosa/IR/TosaOps.h"
|
||||
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
|
||||
#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h"
|
||||
#include "mlir/Dialect/UB/IR/UBOps.h"
|
||||
#include "mlir/Dialect/Vector/IR/ValueBoundsOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Vector/IR/VectorOps.h"
|
||||
#include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/Vector/Transforms/SubsetOpInterfaceImpl.h"
|
||||
#include "mlir/Dialect/X86Vector/X86VectorDialect.h"
|
||||
#include "mlir/Dialect/XeGPU/IR/XeGPU.h"
|
||||
#include "mlir/IR/Dialect.h"
|
||||
#include "mlir/Interfaces/CastInterfaces.h"
|
||||
#include "mlir/Target/LLVM/NVVM/Target.h"
|
||||
#include "mlir/Target/LLVM/ROCDL/Target.h"
|
||||
#include "mlir/Target/SPIRV/Target.h"
|
||||
|
||||
/// Add all the MLIR dialects to the provided registry.
|
||||
void mlir::registerAllDialects(DialectRegistry ®istry) {
|
||||
// clang-format off
|
||||
registry.insert<acc::OpenACCDialect,
|
||||
affine::AffineDialect,
|
||||
amdgpu::AMDGPUDialect,
|
||||
amx::AMXDialect,
|
||||
arith::ArithDialect,
|
||||
arm_neon::ArmNeonDialect,
|
||||
arm_sme::ArmSMEDialect,
|
||||
arm_sve::ArmSVEDialect,
|
||||
async::AsyncDialect,
|
||||
bufferization::BufferizationDialect,
|
||||
cf::ControlFlowDialect,
|
||||
complex::ComplexDialect,
|
||||
DLTIDialect,
|
||||
emitc::EmitCDialect,
|
||||
func::FuncDialect,
|
||||
gpu::GPUDialect,
|
||||
index::IndexDialect,
|
||||
irdl::IRDLDialect,
|
||||
linalg::LinalgDialect,
|
||||
LLVM::LLVMDialect,
|
||||
math::MathDialect,
|
||||
memref::MemRefDialect,
|
||||
shard::ShardDialect,
|
||||
ml_program::MLProgramDialect,
|
||||
mpi::MPIDialect,
|
||||
nvgpu::NVGPUDialect,
|
||||
NVVM::NVVMDialect,
|
||||
omp::OpenMPDialect,
|
||||
pdl::PDLDialect,
|
||||
pdl_interp::PDLInterpDialect,
|
||||
ptr::PtrDialect,
|
||||
quant::QuantDialect,
|
||||
ROCDL::ROCDLDialect,
|
||||
scf::SCFDialect,
|
||||
shape::ShapeDialect,
|
||||
smt::SMTDialect,
|
||||
sparse_tensor::SparseTensorDialect,
|
||||
spirv::SPIRVDialect,
|
||||
tensor::TensorDialect,
|
||||
tosa::TosaDialect,
|
||||
transform::TransformDialect,
|
||||
ub::UBDialect,
|
||||
vector::VectorDialect,
|
||||
x86vector::X86VectorDialect,
|
||||
xegpu::XeGPUDialect,
|
||||
xevm::XeVMDialect>();
|
||||
// clang-format on
|
||||
|
||||
// Register all external models.
|
||||
affine::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
arith::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
arith::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
arith::registerBufferViewFlowOpInterfaceExternalModels(registry);
|
||||
arith::registerShardingInterfaceExternalModels(registry);
|
||||
arith::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(
|
||||
registry);
|
||||
builtin::registerCastOpInterfaceExternalModels(registry);
|
||||
cf::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
cf::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
gpu::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
gpu::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
LLVM::registerInlinerInterface(registry);
|
||||
NVVM::registerInlinerInterface(registry);
|
||||
linalg::registerAllDialectInterfaceImplementations(registry);
|
||||
linalg::registerRuntimeVerifiableOpInterfaceExternalModels(registry);
|
||||
memref::registerAllocationOpInterfaceExternalModels(registry);
|
||||
memref::registerBufferViewFlowOpInterfaceExternalModels(registry);
|
||||
memref::registerRuntimeVerifiableOpInterfaceExternalModels(registry);
|
||||
memref::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
memref::registerMemorySlotExternalModels(registry);
|
||||
ml_program::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
scf::registerBufferDeallocationOpInterfaceExternalModels(registry);
|
||||
scf::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
scf::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
shape::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
sparse_tensor::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
tensor::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
tensor::registerFindPayloadReplacementOpInterfaceExternalModels(registry);
|
||||
tensor::registerInferTypeOpInterfaceExternalModels(registry);
|
||||
tensor::registerRuntimeVerifiableOpInterfaceExternalModels(registry);
|
||||
tensor::registerSubsetOpInterfaceExternalModels(registry);
|
||||
tensor::registerTilingInterfaceExternalModels(registry);
|
||||
tensor::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
tosa::registerShardingInterfaceExternalModels(registry);
|
||||
vector::registerBufferizableOpInterfaceExternalModels(registry);
|
||||
vector::registerSubsetOpInterfaceExternalModels(registry);
|
||||
vector::registerValueBoundsOpInterfaceExternalModels(registry);
|
||||
NVVM::registerNVVMTargetInterfaceExternalModels(registry);
|
||||
ROCDL::registerROCDLTargetInterfaceExternalModels(registry);
|
||||
spirv::registerSPIRVTargetInterfaceExternalModels(registry);
|
||||
}
|
||||
|
||||
/// Append all the MLIR dialects to the registry contained in the given context.
|
||||
void mlir::registerAllDialects(MLIRContext &context) {
|
||||
DialectRegistry registry;
|
||||
registerAllDialects(registry);
|
||||
context.appendDialectRegistry(registry);
|
||||
}
|
||||
@ -1,115 +0,0 @@
|
||||
//===- RegisterAllExtensions.cpp - MLIR Extension 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 dialect
|
||||
// extensions to the system.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/InitAllExtensions.h"
|
||||
|
||||
#include "mlir/Conversion/ArithToEmitC/ArithToEmitC.h"
|
||||
#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
|
||||
#include "mlir/Conversion/ComplexToLLVM/ComplexToLLVM.h"
|
||||
#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
|
||||
#include "mlir/Conversion/FuncToEmitC/FuncToEmitC.h"
|
||||
#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
|
||||
#include "mlir/Conversion/GPUCommon/GPUToLLVM.h"
|
||||
#include "mlir/Conversion/GPUToNVVM/GPUToNVVM.h"
|
||||
#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
|
||||
#include "mlir/Conversion/MPIToLLVM/MPIToLLVM.h"
|
||||
#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
|
||||
#include "mlir/Conversion/MemRefToEmitC/MemRefToEmitC.h"
|
||||
#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
|
||||
#include "mlir/Conversion/NVVMToLLVM/NVVMToLLVM.h"
|
||||
#include "mlir/Conversion/OpenMPToLLVM/ConvertOpenMPToLLVM.h"
|
||||
#include "mlir/Conversion/SCFToEmitC/SCFToEmitC.h"
|
||||
#include "mlir/Conversion/UBToLLVM/UBToLLVM.h"
|
||||
#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h"
|
||||
#include "mlir/Conversion/XeVMToLLVM/XeVMToLLVM.h"
|
||||
#include "mlir/Dialect/AMX/Transforms.h"
|
||||
#include "mlir/Dialect/Affine/TransformOps/AffineTransformOps.h"
|
||||
#include "mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.h"
|
||||
#include "mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.h"
|
||||
#include "mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h"
|
||||
#include "mlir/Dialect/DLTI/TransformOps/DLTITransformOps.h"
|
||||
#include "mlir/Dialect/Func/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Func/TransformOps/FuncTransformOps.h"
|
||||
#include "mlir/Dialect/GPU/TransformOps/GPUTransformOps.h"
|
||||
#include "mlir/Dialect/Linalg/TransformOps/DialectExtension.h"
|
||||
#include "mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.h"
|
||||
#include "mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h"
|
||||
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
|
||||
#include "mlir/Dialect/SparseTensor/TransformOps/SparseTensorTransformOps.h"
|
||||
#include "mlir/Dialect/Tensor/Extensions/AllExtensions.h"
|
||||
#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h"
|
||||
#include "mlir/Dialect/Transform/DebugExtension/DebugExtension.h"
|
||||
#include "mlir/Dialect/Transform/IRDLExtension/IRDLExtension.h"
|
||||
#include "mlir/Dialect/Transform/LoopExtension/LoopExtension.h"
|
||||
#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h"
|
||||
#include "mlir/Dialect/Transform/TuneExtension/TuneExtension.h"
|
||||
#include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
|
||||
#include "mlir/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.h"
|
||||
|
||||
/// This function may be called to register all MLIR dialect extensions with the
|
||||
/// provided registry.
|
||||
/// If you're building a compiler, you generally shouldn't use this: you would
|
||||
/// individually register the specific extensions that are useful for the
|
||||
/// pipelines and transformations you are using.
|
||||
void mlir::registerAllExtensions(DialectRegistry ®istry) {
|
||||
// Register all conversions to LLVM extensions.
|
||||
registerConvertArithToEmitCInterface(registry);
|
||||
arith::registerConvertArithToLLVMInterface(registry);
|
||||
registerConvertComplexToLLVMInterface(registry);
|
||||
cf::registerConvertControlFlowToLLVMInterface(registry);
|
||||
func::registerAllExtensions(registry);
|
||||
tensor::registerAllExtensions(registry);
|
||||
registerConvertFuncToEmitCInterface(registry);
|
||||
registerConvertFuncToLLVMInterface(registry);
|
||||
index::registerConvertIndexToLLVMInterface(registry);
|
||||
registerConvertMathToLLVMInterface(registry);
|
||||
mpi::registerConvertMPIToLLVMInterface(registry);
|
||||
registerConvertMemRefToEmitCInterface(registry);
|
||||
registerConvertMemRefToLLVMInterface(registry);
|
||||
registerConvertNVVMToLLVMInterface(registry);
|
||||
registerConvertOpenMPToLLVMInterface(registry);
|
||||
registerConvertSCFToEmitCInterface(registry);
|
||||
ub::registerConvertUBToLLVMInterface(registry);
|
||||
registerConvertAMXToLLVMInterface(registry);
|
||||
gpu::registerConvertGpuToLLVMInterface(registry);
|
||||
NVVM::registerConvertGpuToNVVMInterface(registry);
|
||||
vector::registerConvertVectorToLLVMInterface(registry);
|
||||
registerConvertXeVMToLLVMInterface(registry);
|
||||
|
||||
// Register all transform dialect extensions.
|
||||
affine::registerTransformDialectExtension(registry);
|
||||
bufferization::registerTransformDialectExtension(registry);
|
||||
dlti::registerTransformDialectExtension(registry);
|
||||
func::registerTransformDialectExtension(registry);
|
||||
gpu::registerTransformDialectExtension(registry);
|
||||
linalg::registerTransformDialectExtension(registry);
|
||||
memref::registerTransformDialectExtension(registry);
|
||||
nvgpu::registerTransformDialectExtension(registry);
|
||||
scf::registerTransformDialectExtension(registry);
|
||||
sparse_tensor::registerTransformDialectExtension(registry);
|
||||
tensor::registerTransformDialectExtension(registry);
|
||||
transform::registerDebugExtension(registry);
|
||||
transform::registerIRDLExtension(registry);
|
||||
transform::registerLoopExtension(registry);
|
||||
transform::registerPDLExtension(registry);
|
||||
transform::registerTuneExtension(registry);
|
||||
vector::registerTransformDialectExtension(registry);
|
||||
arm_neon::registerTransformDialectExtension(registry);
|
||||
arm_sve::registerTransformDialectExtension(registry);
|
||||
|
||||
// Translation extensions need to be registered by calling
|
||||
// `registerAllToLLVMIRTranslations` (see All.h).
|
||||
}
|
||||
@ -1,99 +0,0 @@
|
||||
//===- RegisterAllPasses.cpp - MLIR 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 passes to the
|
||||
// system.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/InitAllPasses.h"
|
||||
|
||||
#include "mlir/Conversion/Passes.h"
|
||||
#include "mlir/Dialect/AMDGPU/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Affine/Passes.h"
|
||||
#include "mlir/Dialect/Arith/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/ArmSME/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/ArmSVE/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Async/Passes.h"
|
||||
#include "mlir/Dialect/Bufferization/Pipelines/Passes.h"
|
||||
#include "mlir/Dialect/Bufferization/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/EmitC/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Func/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/GPU/Pipelines/Passes.h"
|
||||
#include "mlir/Dialect/GPU/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/LLVMIR/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Linalg/Passes.h"
|
||||
#include "mlir/Dialect/MLProgram/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Math/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/MemRef/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/NVGPU/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/OpenACC/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Quant/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SCF/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SPIRV/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Shape/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Shard/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/SparseTensor/Pipelines/Passes.h"
|
||||
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Tensor/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Tosa/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Transform/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/Vector/Transforms/Passes.h"
|
||||
#include "mlir/Dialect/XeGPU/Transforms/Passes.h"
|
||||
#include "mlir/Transforms/Passes.h"
|
||||
|
||||
// This function may be called to register the MLIR passes with the
|
||||
// global registry.
|
||||
// If you're building a compiler, you likely don't need this: you would build a
|
||||
// pipeline programmatically without the need to register with the global
|
||||
// registry, since it would already be calling the creation routine of the
|
||||
// individual passes.
|
||||
// The global registry is interesting to interact with the command-line tools.
|
||||
void mlir::registerAllPasses() {
|
||||
// General passes
|
||||
registerTransformsPasses();
|
||||
|
||||
// Conversion passes
|
||||
registerConversionPasses();
|
||||
|
||||
// Dialect passes
|
||||
acc::registerOpenACCPasses();
|
||||
affine::registerAffinePasses();
|
||||
amdgpu::registerAMDGPUPasses();
|
||||
registerAsyncPasses();
|
||||
arith::registerArithPasses();
|
||||
bufferization::registerBufferizationPasses();
|
||||
func::registerFuncPasses();
|
||||
registerGPUPasses();
|
||||
registerLinalgPasses();
|
||||
registerNVGPUPasses();
|
||||
registerSparseTensorPasses();
|
||||
LLVM::registerLLVMPasses();
|
||||
math::registerMathPasses();
|
||||
memref::registerMemRefPasses();
|
||||
shard::registerShardPasses();
|
||||
ml_program::registerMLProgramPasses();
|
||||
quant::registerQuantPasses();
|
||||
registerSCFPasses();
|
||||
registerShapePasses();
|
||||
spirv::registerSPIRVPasses();
|
||||
tensor::registerTensorPasses();
|
||||
tosa::registerTosaOptPasses();
|
||||
transform::registerTransformPasses();
|
||||
vector::registerVectorPasses();
|
||||
arm_sme::registerArmSMEPasses();
|
||||
arm_sve::registerArmSVEPasses();
|
||||
emitc::registerEmitCPasses();
|
||||
xegpu::registerXeGPUPasses();
|
||||
|
||||
// Dialect pipelines
|
||||
bufferization::registerBufferizationPipelines();
|
||||
sparse_tensor::registerSparseTensorPipelines();
|
||||
tosa::registerTosaToLinalgPipelines();
|
||||
gpu::registerGPUToNVVMPipeline();
|
||||
}
|
||||
@ -2,6 +2,8 @@ set(LLVM_OPTIONAL_SOURCES
|
||||
null.cpp
|
||||
)
|
||||
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Core
|
||||
Support
|
||||
@ -33,11 +35,22 @@ if(MLIR_INCLUDE_TESTS)
|
||||
endif()
|
||||
|
||||
set(LIBS
|
||||
MLIRLspServerLib
|
||||
${conversion_libs}
|
||||
${dialect_libs}
|
||||
${extension_libs}
|
||||
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRRegisterAllPasses
|
||||
MLIRAffineAnalysis
|
||||
MLIRAnalysis
|
||||
MLIRDialect
|
||||
MLIRFuncAllExtensions
|
||||
MLIRLspServerLib
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRTensorAllExtensions
|
||||
MLIRTransforms
|
||||
MLIRTransformUtils
|
||||
MLIRSupport
|
||||
MLIRIR
|
||||
)
|
||||
|
||||
add_mlir_tool(mlir-lsp-server
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/IR/DialectRegistry.h"
|
||||
#include "mlir/IR/MLIRContext.h"
|
||||
#include "mlir/InitAllDialects.h"
|
||||
#include "mlir/InitAllExtensions.h"
|
||||
|
||||
@ -2,6 +2,9 @@ set(LLVM_OPTIONAL_SOURCES
|
||||
null.cpp
|
||||
)
|
||||
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Core
|
||||
Support
|
||||
@ -62,11 +65,21 @@ if(MLIR_INCLUDE_TESTS)
|
||||
endif()
|
||||
|
||||
set(LIBS
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
${extension_libs}
|
||||
|
||||
MLIRAffineAnalysis
|
||||
MLIRAnalysis
|
||||
MLIRCastInterfaces
|
||||
MLIRDialect
|
||||
MLIROptLib
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllExtensions
|
||||
MLIRRegisterAllPasses
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRTransforms
|
||||
MLIRTransformUtils
|
||||
MLIRSupport
|
||||
MLIRIR
|
||||
|
||||
# TODO: Remove when registerAllGPUToLLVMIRTranslations is no longer
|
||||
# registered directly in mlir-opt.cpp.
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
|
||||
if(MLIR_INCLUDE_TESTS)
|
||||
set(test_libs
|
||||
MLIRTestDialect
|
||||
@ -10,8 +12,8 @@ add_mlir_tool(mlir-query
|
||||
llvm_update_compile_flags(mlir-query)
|
||||
mlir_target_link_libraries(mlir-query
|
||||
PRIVATE
|
||||
${dialect_libs}
|
||||
MLIRQueryLib
|
||||
MLIRRegisterAllDialects
|
||||
)
|
||||
target_link_libraries(mlir-query PRIVATE ${test_libs})
|
||||
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
|
||||
if(MLIR_INCLUDE_TESTS)
|
||||
set(test_libs
|
||||
MLIRTestDialect
|
||||
@ -5,9 +8,12 @@ if(MLIR_INCLUDE_TESTS)
|
||||
endif()
|
||||
|
||||
set(LIBS
|
||||
${conversion_libs}
|
||||
${dialect_libs}
|
||||
MLIRDialect
|
||||
MLIRIR
|
||||
MLIRPass
|
||||
MLIRReduceLib
|
||||
MLIRRegisterAllDialects
|
||||
MLIRRegisterAllPasses
|
||||
)
|
||||
|
||||
add_mlir_tool(mlir-reduce
|
||||
|
||||
@ -1,19 +1,21 @@
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
||||
set(LIBS
|
||||
${dialect_libs}
|
||||
|
||||
MLIRAffineAnalysis
|
||||
MLIRAnalysis
|
||||
MLIRCastInterfaces
|
||||
MLIRDialect
|
||||
MLIRIR
|
||||
MLIRParser
|
||||
MLIRPass
|
||||
MLIRRegisterAllDialects
|
||||
MLIRSupport
|
||||
MLIRTransformUtils
|
||||
MLIRTransforms
|
||||
MLIRTransformUtils
|
||||
MLIRSupport
|
||||
MLIRIR
|
||||
)
|
||||
|
||||
include_directories(../../../clang/include)
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LineIterator.h"
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/Regex.h"
|
||||
#include "llvm/Support/SourceMgr.h"
|
||||
#include "llvm/Support/ToolOutputFile.h"
|
||||
|
||||
@ -10,13 +10,14 @@ add_mlir_unittest(MLIRExecutionEngineTests
|
||||
StridedMemRef.cpp
|
||||
Invoke.cpp
|
||||
)
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
|
||||
mlir_target_link_libraries(MLIRExecutionEngineTests
|
||||
PRIVATE
|
||||
MLIRArithToLLVM
|
||||
MLIRMemRefToLLVM
|
||||
MLIRReconcileUnrealizedCasts
|
||||
MLIRRegisterAllDialects
|
||||
${dialect_libs}
|
||||
)
|
||||
target_link_libraries(MLIRExecutionEngineTests
|
||||
PRIVATE
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
set(LLVM_LINK_COMPONENTS nativecodegen BitReader)
|
||||
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
|
||||
add_mlir_unittest(MLIRTargetLLVMTests
|
||||
SerializeNVVMTarget.cpp
|
||||
SerializeROCDLTarget.cpp
|
||||
SerializeToLLVMBitcode.cpp
|
||||
DEPENDS
|
||||
MLIRRegisterAllDialects
|
||||
${dialect_libs}
|
||||
)
|
||||
|
||||
mlir_target_link_libraries(MLIRTargetLLVMTests
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user