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