MLIR-AIE 1.4.5.dev
XLLVMDialect.h
Go to the documentation of this file.
1/* Copyright (C) 2024 Advanced Micro Devices, Inc.
2 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception */
3
4//===- XLLVMDialect.h - External LLVM (xllvm) dialect --------------C++ -*-===//
5//
6//===----------------------------------------------------------------------===//
7//
8// This file defines the XLLVM dialect, containing LLVM intrinsic operations
9// for an external LLVM compiler.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef AIE_DIALECT_XLLVM_XLLVMDIALECT_H
14#define AIE_DIALECT_XLLVM_XLLVMDIALECT_H
15
16#include "mlir/Bytecode/BytecodeOpInterface.h"
17#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"
18#include "mlir/Dialect/LLVMIR/LLVMInterfaces.h"
19#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
20#include "mlir/IR/BuiltinOps.h"
21#include "mlir/IR/Dialect.h"
22#include "mlir/IR/OpDefinition.h"
23#include "mlir/IR/OpImplementation.h"
24#include "mlir/IR/TypeSupport.h"
25#include "mlir/IR/Types.h"
26#include "mlir/Interfaces/CallInterfaces.h"
27#include "mlir/Interfaces/ControlFlowInterfaces.h"
28#include "mlir/Interfaces/FunctionInterfaces.h"
29#include "mlir/Interfaces/InferTypeOpInterface.h"
30#include "mlir/Interfaces/SideEffectInterfaces.h"
31#include "mlir/Support/ThreadLocalCache.h"
32#include "mlir/Transforms/Mem2Reg.h"
33#include "llvm/ADT/PointerEmbeddedInt.h"
34#include "llvm/IR/DerivedTypes.h"
35#include "llvm/IR/LLVMContext.h"
36#include "llvm/IR/Module.h"
37#include "llvm/IR/Type.h"
38
39#define GET_OP_CLASSES
40#include "aie/Dialect/XLLVM/IR/XLLVMOps.h.inc"
41
42#include "aie/Dialect/XLLVM/IR/XLLVMDialect.h.inc"
43
44namespace llvm {
45
46class CallInst;
47class IRBuilderBase;
48class StringRef;
49
50} // namespace llvm
51
52namespace mlir {
53
54class Operation;
55
56namespace LLVM {
57class ModuleTranslation;
58} // namespace LLVM
59
60} // namespace mlir
61
62namespace xilinx::xllvm {
63
65 llvm::IRBuilderBase &builder,
66 mlir::LLVM::ModuleTranslation &moduleTranslation, mlir::Operation *intrOp,
67 llvm::StringRef intrinsicName);
68
69} // namespace xilinx::xllvm
70
71#endif // AIE_DIALECT_XLLVM_XLLVMDIALECT_H
llvm::CallInst * createExternalLLVMIntrinsicCall(llvm::IRBuilderBase &builder, mlir::LLVM::ModuleTranslation &moduleTranslation, mlir::Operation *intrOp, llvm::StringRef intrinsicName)