Alex Zinenko 176379e0c8 [mlir] Use the interface-based translation for LLVM "intrinsic" dialects
Port the translation of five dialects that define LLVM IR intrinsics
(LLVMAVX512, LLVMArmNeon, LLVMArmSVE, NVVM, ROCDL) to the new dialect
interface-based mechanism. This allows us to remove individual translations
that were created for each of these dialects and just use one common
MLIR-to-LLVM-IR translation that potentially supports all dialects instead,
based on what is registered and including any combination of translatable
dialects. This removal was one of the main goals of the refactoring.

To support the addition of GPU-related metadata, the translation interface is
extended with the `amendOperation` function that allows the interface
implementation to post-process any translated operation with dialect attributes
from the dialect for which the interface is implemented regardless of the
operation's dialect. This is currently applied to "kernel" functions, but can
be used to construct other metadata in dialect-specific ways without
necessarily affecting operations.

Depends On D96591, D96504

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D96592
2021-02-15 14:43:07 +01:00

71 lines
1.6 KiB
CMake

# Exclude tests from libMLIR.so
add_mlir_library(MLIRTestTransforms
TestAffineLoopParametricTiling.cpp
TestExpandTanh.cpp
TestCallGraph.cpp
TestDecomposeCallGraphTypes.cpp
TestConstantFold.cpp
TestConvVectorization.cpp
TestConvertCallOp.cpp
TestConvertGPUKernelToCubin.cpp
TestConvertGPUKernelToHsaco.cpp
TestDominance.cpp
TestDynamicPipeline.cpp
TestLoopFusion.cpp
TestGpuMemoryPromotion.cpp
TestGpuParallelLoopMapping.cpp
TestGpuRewrite.cpp
TestInlining.cpp
TestLinalgCodegenStrategy.cpp
TestLinalgFusionTransforms.cpp
TestLinalgHoisting.cpp
TestLinalgTransforms.cpp
TestLiveness.cpp
TestLoopMapping.cpp
TestLoopParametricTiling.cpp
TestLoopUnrolling.cpp
TestNumberOfExecutions.cpp
TestOpaqueLoc.cpp
TestMemRefBoundCheck.cpp
TestMemRefDependenceCheck.cpp
TestMemRefStrideCalculation.cpp
TestSCFUtils.cpp
TestSparsification.cpp
TestVectorTransforms.cpp
EXCLUDE_FROM_LIBMLIR
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Transforms
DEPENDS
MLIRStandardOpsIncGen
LINK_LIBS PUBLIC
MLIRAffine
MLIRAnalysis
MLIREDSC
MLIRGPU
MLIRGPU
MLIRGPUToGPURuntimeTransforms
MLIRLinalg
MLIRLinalgTransforms
MLIRMathTransforms
MLIRNVVMIR
MLIRNVVMToLLVMIRTranslation
MLIRPass
MLIRROCDLIR
MLIRROCDLToLLVMIRTranslation
MLIRSCF
MLIRSCFTransforms
MLIRStandardOpsTransforms
MLIRTargetLLVMIR
MLIRTestDialect
MLIRTransformUtils
MLIRVector
MLIRVectorToSCF
)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Dialect/Test)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/../Dialect/Test)