MLIR 22.0.0git
TypeFromLLVM.h
Go to the documentation of this file.
1//===- TypeFromLLVM.h - Translate types from LLVM to MLIR --*- 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 declares the type translation function going from MLIR LLVM dialect
10// to LLVM IR and back.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef MLIR_TARGET_LLVMIR_TYPEFROMLLVM_H
15#define MLIR_TARGET_LLVMIR_TYPEFROMLLVM_H
16
17#include <memory>
18
19namespace llvm {
20class Type;
21} // namespace llvm
22
23namespace mlir {
24
25class Type;
26class MLIRContext;
27
28namespace LLVM {
29
30namespace detail {
32} // namespace detail
33
34/// Utility class to translate LLVM IR types to the MLIR LLVM dialect. Stores
35/// the translation state, in particular any identified structure types that are
36/// reused across translations.
38public:
40 bool importStructsAsLiterals = false);
42
43 /// Translates the given LLVM IR type to the MLIR LLVM dialect.
44 Type translateType(llvm::Type *type);
45
46private:
47 /// Private implementation.
48 std::unique_ptr<detail::TypeFromLLVMIRTranslatorImpl> impl;
49};
50
51} // namespace LLVM
52} // namespace mlir
53
54#endif // MLIR_TARGET_LLVMIR_TYPEFROMLLVM_H
TypeFromLLVMIRTranslator(MLIRContext &context, bool importStructsAsLiterals=false)
Type translateType(llvm::Type *type)
Translates the given LLVM IR type to the MLIR LLVM dialect.
Support for translating LLVM IR types to MLIR LLVM dialect types.
MLIRContext is the top-level object for a collection of MLIR operations.
Definition MLIRContext.h:63
Instances of the Type class are uniqued, have an immutable identifier and an optional mutable compone...
Definition Types.h:74
The OpAsmOpInterface, see OpAsmInterface.td for more details.
Definition CallGraph.h:229
Include the generated interface declarations.