MLIR  21.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 
19 namespace llvm {
20 class Type;
21 } // namespace llvm
22 
23 namespace mlir {
24 
25 class Type;
26 class MLIRContext;
27 
28 namespace LLVM {
29 
30 namespace detail {
31 class TypeFromLLVMIRTranslatorImpl;
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.
38 public:
40  bool importStructsAsLiterals = false);
42 
43  /// Translates the given LLVM IR type to the MLIR LLVM dialect.
44  Type translateType(llvm::Type *type);
45 
46 private:
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
Utility class to translate LLVM IR types to the MLIR LLVM dialect.
Definition: TypeFromLLVM.h:37
TypeFromLLVMIRTranslator(MLIRContext &context, bool importStructsAsLiterals=false)
Type translateType(llvm::Type *type)
Translates the given LLVM IR type to the MLIR LLVM dialect.
MLIRContext is the top-level object for a collection of MLIR operations.
Definition: MLIRContext.h:60
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
@ Type
An inlay hint that for a type annotation.
Include the generated interface declarations.