################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# compiler/src/iree/compiler/Codegen/Common/GPU/BUILD.bazel                    #
#                                                                              #
# Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
# CMake-only content.                                                          #
#                                                                              #
# To disable autogeneration for this file entirely, delete this header.        #
################################################################################

iree_add_all_subdirs()

iree_tablegen_library(
  NAME
    PassesIncGen
  TD_FILE
    "Passes.td"
  OUTS
    --gen-pass-decls Passes.h.inc
)

iree_cc_library(
  NAME
    PassHeaders
  HDRS
    "Passes.h"
    "Passes.h.inc"
  DEPS
    ::PassesIncGen
    MLIRLinalgTransforms
    MLIRMemRefDialect
    MLIRNVGPUDialect
    MLIRPass
    MLIRTransformUtils
    MLIRTransforms
    MLIRUBDialect
    iree::compiler::Codegen::Dialect::Codegen::IR::IREECodegenDialect
    iree::compiler::Dialect::HAL::IR
    iree::compiler::Utils
  PUBLIC
)

iree_cc_library(
  NAME
    CommonGPUPasses
  HDRS
    "GPUNestedLayoutUtils.h"
    "GPUPatterns.h"
    "GPUPromotionAnalysis.h"
    "GPUVectorDistribution.h"
    "Passes.h"
  SRCS
    "AMDGPULowerAsyncDMA.cpp"
    "AMDGPULowerCoalescedDMAToGatherLDS.cpp"
    "DecomposeHorizontallyFusedGemms.cpp"
    "ExpandGPUOps.cpp"
    "GPUAllocPrivateMemoryForDPSOps.cpp"
    "GPUApplyPaddingLevel.cpp"
    "GPUApplyTilingLevel.cpp"
    "GPUBubbleResourceCasts.cpp"
    "GPUCheckResourceUsage.cpp"
    "GPUCombineLayoutTransformation.cpp"
    "GPUCombineValueSemanticBarriers.cpp"
    "GPUConvertToCoalescedDMA.cpp"
    "GPUCreateFastSlowPath.cpp"
    "GPUDistribute.cpp"
    "GPUDistributeCopyUsingForall.cpp"
    "GPUDistributeForall.cpp"
    "GPUDistributeScfFor.cpp"
    "GPUDistributeSharedMemoryCopy.cpp"
    "GPUDistributionPatterns.cpp"
    "GPUFuseAndHoistParallelLoops.cpp"
    "GPUFuseSubgroupConsumers.cpp"
    "GPUGeneralizeNamedOps.cpp"
    "GPUGreedilyDistributeToThreads.cpp"
    "GPUInferMemorySpace.cpp"
    "GPUMultiBuffering.cpp"
    "GPUNestedLayoutDistributionPatterns.cpp"
    "GPUNestedLayoutUtils.cpp"
    "GPUPackPartialReductions.cpp"
    "GPUPackToIntrinsics.cpp"
    "GPUPadConvs.cpp"
    "GPUPadOperands.cpp"
    "GPUPatterns.cpp"
    "GPUPipelining.cpp"
    "GPUPromoteMatmulOperands.cpp"
    "GPUPromotionAnalysis.cpp"
    "GPUReduceBankConflicts.cpp"
    "GPUReuseSharedMemoryAllocs.cpp"
    "GPUTensorAlloc.cpp"
    "GPUTensorTile.cpp"
    "GPUTensorTileToSerialLoops.cpp"
    "GPUTile.cpp"
    "GPUTileAndConvertConvToMatmul.cpp"
    "GPUTileReduction.cpp"
    "GPUVectorAlloc.cpp"
    "GPUVectorDistribution.cpp"
    "GPUVerifyDistribution.cpp"
    "Passes.cpp"
    "VectorReductionToGPU.cpp"
    "WorkgroupReordering.cpp"
  DEPS
    ::PassHeaders
    ::PassesIncGen
    LLVMSupport
    MLIRAMDGPUDialect
    MLIRAMDGPUUtils
    MLIRAffineDialect
    MLIRAffineTransforms
    MLIRAffineUtils
    MLIRAnalysis
    MLIRArithDialect
    MLIRArithUtils
    MLIRBufferizationDialect
    MLIRControlFlowDialect
    MLIRDestinationStyleOpInterface
    MLIRFuncDialect
    MLIRFunctionInterfaces
    MLIRGPUDialect
    MLIRGPUTransformOps
    MLIRGPUTransforms
    MLIRGPUUtils
    MLIRIR
    MLIRLLVMCommonConversion
    MLIRLinalgDialect
    MLIRLinalgInterfacesIncGenLib
    MLIRLinalgTransforms
    MLIRLinalgUtils
    MLIRLoopLikeInterface
    MLIRMathDialect
    MLIRMemRefDialect
    MLIRMemRefTransforms
    MLIRMemRefUtils
    MLIRNVGPUDialect
    MLIRPass
    MLIRRewrite
    MLIRSCFDialect
    MLIRSCFTransforms
    MLIRSCFUtils
    MLIRSideEffectInterfaces
    MLIRSupport
    MLIRTensorDialect
    MLIRTensorTransforms
    MLIRTilingInterface
    MLIRTransformUtils
    MLIRTransforms
    MLIRUBDialect
    MLIRValueBoundsOpInterface
    MLIRVectorDialect
    MLIRVectorToSCF
    MLIRVectorTransforms
    MLIRVectorUtils
    MLIRViewLikeInterface
    iree::compiler::Codegen::Common
    iree::compiler::Codegen::Dialect::Codegen::IR::IREECodegenDialect
    iree::compiler::Codegen::Dialect::Codegen::Utils
    iree::compiler::Codegen::Dialect::GPU::IR::IREEGPUDialect
    iree::compiler::Codegen::Dialect::GPU::Transforms::GPUTransforms
    iree::compiler::Codegen::Dialect::PCF::IR
    iree::compiler::Codegen::Dialect::PCF::Transforms
    iree::compiler::Codegen::Dialect::VectorExt::IR::IREEVectorExtDialect
    iree::compiler::Codegen::Dialect::VectorExt::Transforms::VectorExtTransforms
    iree::compiler::Codegen::Interfaces::PartitionableLoopsInterface
    iree::compiler::Codegen::Interfaces::TensorMaskingOpInterface
    iree::compiler::Codegen::Transforms
    iree::compiler::Codegen::Utils
    iree::compiler::Codegen::Utils::VectorOpUtils
    iree::compiler::Dialect::HAL::IR
    iree::compiler::Dialect::LinalgExt::IR
    iree::compiler::Dialect::LinalgExt::Transforms
    iree::compiler::Dialect::LinalgExt::Utils
    iree::compiler::Dialect::TensorExt::IR
    iree::compiler::Dialect::Util::IR
    iree::compiler::Utils
  PUBLIC
)

iree_cc_library(
  NAME
    GPUHeuristics
  HDRS
    "GPUHeuristics.h"
  SRCS
    "GPUHeuristics.cpp"
  DEPS
    LLVMSupport
    MLIRIR
    MLIRSupport
    iree::compiler::Codegen::Dialect::GPU::IR::IREEGPUDialect
  PUBLIC
)

iree_tablegen_doc(
  NAME
    CodegenCommonGPUPassesDocGen
  CATEGORY
    "Passes"
  TD_FILE
    "Passes.td"
  OUTS
    --gen-pass-doc CodegenCommonGPUPasses.md
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
