Skip to content

Commit

Permalink
vendor xclbin
Browse files Browse the repository at this point in the history
  • Loading branch information
makslevental committed Jun 16, 2024
1 parent a295d90 commit adf3569
Show file tree
Hide file tree
Showing 10 changed files with 1,309 additions and 75 deletions.
18 changes: 0 additions & 18 deletions compiler/plugins/target/AMD-AIE/aie/AIETransformPasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,6 @@

#include "AIEAssignBufferAddressesBasic.h"
#include "aie/Dialect/AIE/Transforms/AIEPasses.h"
#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
#include "mlir/Dialect/Func/Extensions/AllExtensions.h"
#include "mlir/Target/LLVMIR/Dialect/All.h"

namespace {
#define GEN_PASS_REGISTRATION
Expand All @@ -33,15 +25,5 @@ void registerAIETransformPasses() {
registerAIEObjectFifoRegisterProcess();
registerAIEObjectFifoStatefulTransform();
registerAIERoutePacketFlows();
// convert to llvm
DialectRegistry registry;
registerAllToLLVMIRTranslations(registry);
arith::registerConvertArithToLLVMInterface(registry);
cf::registerConvertControlFlowToLLVMInterface(registry);
func::registerAllExtensions(registry);
registerConvertFuncToLLVMInterface(registry);
index::registerConvertIndexToLLVMInterface(registry);
registerConvertMathToLLVMInterface(registry);
registerConvertMemRefToLLVMInterface(registry);
}
} // namespace mlir::iree_compiler::AMDAIE
115 changes: 104 additions & 11 deletions compiler/plugins/target/AMD-AIE/aie/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,67 @@ iree_tablegen_library(
-gen-enum-defs Dialect/AIEVec/IR/AIEVecEnums.cpp.inc
)

iree_tablegen_library(
NAME
AIEVecOpsGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Dialect/AIEVec/IR/AIEVecOps.td"
OUTS
-gen-op-decls Dialect/AIEVec/IR/AIEVecOps.h.inc
-gen-op-defs Dialect/AIEVec/IR/AIEVecOps.cpp.inc
)

iree_tablegen_library(
NAME
AIEVecConversionPassIncGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Conversion/Passes.td"
OUTS
# this doesn't follow the correct naming convention but it's burned in downstream
-gen-pass-decls Conversion/Passes.h.inc
-gen-enum-decls Conversion/PassesEnums.h.inc
-gen-enum-defs Conversion/PassesEnums.cpp.inc
)

iree_tablegen_library(
NAME
AIEVecPassIncGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Dialect/AIEVec/Transforms/Passes.td"
OUTS
-gen-pass-decls Dialect/AIEVec/Transforms/Passes.h.inc
)

iree_tablegen_library(
NAME
AIEVecAnalysisPassesIncGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Dialect/AIEVec/Analysis/Passes.td"
OUTS
-gen-pass-decls Dialect/AIEVec/Analysis/Passes.h.inc
)

iree_tablegen_library(
NAME
AIEVecXLLVMOpsGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Dialect/XLLVM/IR/XLLVMOps.td"
OUTS
-gen-dialect-decls -dialect=xllvm Dialect/XLLVM/IR/XLLVMDialect.h.inc
-gen-dialect-defs -dialect=xllvm Dialect/XLLVM/IR/XLLVMDialect.cpp.inc
-gen-op-decls Dialect/XLLVM/IR/XLLVMOps.h.inc
-gen-op-defs Dialect/XLLVM/IR/XLLVMOps.cpp.inc
)

iree_tablegen_library(
NAME
AIEVecXLLVMConversionPassIncGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Dialect/XLLVM/IR/XLLVMOps.td"
OUTS
-gen-llvmir-conversions Dialect/XLLVM/IR/XLLVMConversions.inc
)

iree_tablegen_library(
NAME
AIEInterfacesGen
Expand Down Expand Up @@ -169,6 +230,7 @@ iree_cc_library(
SRCS
${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/IR/AIEVecOps.cpp
${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/IR/AIEVecTypes.cpp
${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/XLLVM/XLLVMOps.cpp
DEPS
::defs
::AIEVecOpsGen
Expand All @@ -177,14 +239,30 @@ iree_cc_library(
MLIRIR
)

iree_tablegen_library(
iree_cc_library(
NAME
AIEVecOpsGen
TD_FILE
"${IREE_MLIR_AIE_SOURCE_DIR}/include/aie/Dialect/AIEVec/IR/AIEVecOps.td"
OUTS
-gen-op-decls Dialect/AIEVec/IR/AIEVecOps.h.inc
-gen-op-defs Dialect/AIEVec/IR/AIEVecOps.cpp.inc
AIEVecConvertToLLVM
SRCS
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Conversion/AIEVecToLLVM/AIEVecToLLVM.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Target/LLVMIR/Dialect/XLLVM/XLLVMToLLVMIRTranslation.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/IntervalReuse.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/AIEVectorize.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/ConvertVectorToAIEVec.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/VectorToVectorConversions.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/VectorToAIEVecConversions.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/AIEVecOptimizations.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/FoldMulAddChainToConvOp.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/CopyRemoval.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Transforms/DynamicSizeNoImplicitBroadcast.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Dialect/AIEVec/Utils/Utils.cpp"
DEPS
::defs
::AIEVecDialectIR
::AIEVecAnalysisPassesIncGen
::AIEVecConversionPassIncGen
::AIEVecPassIncGen
::AIEVecXLLVMConversionPassIncGen
::AIEVecXLLVMOpsGen
)

###############################################################################
Expand Down Expand Up @@ -276,20 +354,35 @@ iree_cc_library(
::defs
::AIEXDialectIR
::AIEXTransformPassHeaders
MLIRToLLVMIRTranslationRegistration
MLIRFuncAllExtensions
)

###############################################################################
# AIE CDO Generation
###############################################################################

if(MSVC)
set(UUID "Rpcrt4.lib")
else()
find_library (UUID uuid REQUIRED)
endif()

iree_cc_library(
NAME
AIETargetCDODirect
AIETargets
SRCS
"XCLBinGen.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Targets/AIETargetBCF.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Targets/AIETargetLdScript.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Targets/AIETargetNPU.cpp"
"${IREE_MLIR_AIE_SOURCE_DIR}/lib/Targets/AIETargetCDODirect.cpp"
DEPS
::AIEDialectIR
::AIEDialectIR
::AIETransformPasses
::AIEVecDialectIR
::AIEVecConvertToLLVM
MLIRToLLVMIRTranslationRegistration
MLIRFuncAllExtensions
${UUID}
iree-amd-aie::runtime::iree_aie_runtime_static
)
)
Loading

0 comments on commit adf3569

Please sign in to comment.