MLIR
19.0.0git
|
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/DialectImplementation.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/TypeSwitch.h"
Go to the source code of this file.
Functions | |
static void | dispatchPrint (AsmPrinter &printer, Type type) |
If the given type is compatible with the LLVM dialect, prints it using internal functions to avoid getting a verbose !llvm prefix. More... | |
static StringRef | getTypeKeyword (Type type) |
Returns the keyword to use for the given type. More... | |
static void | printStructType (AsmPrinter &printer, LLVMStructType type) |
Prints a structure type. More... | |
static ParseResult | dispatchParse (AsmParser &parser, Type &type) |
Helper to use in parse lists. More... | |
static Type | parseVectorType (AsmParser &parser) |
Parses an LLVM dialect vector type. More... | |
static LLVMStructType | trySetStructBody (LLVMStructType type, ArrayRef< Type > subtypes, bool isPacked, AsmParser &parser, SMLoc subtypesLoc) |
Attempts to set the body of an identified structure type. More... | |
static LLVMStructType | parseStructType (AsmParser &parser) |
Parses an LLVM dialect structure type. More... | |
static Type | dispatchParse (AsmParser &parser, bool allowAny=true) |
Parses a type appearing inside another LLVM dialect-compatible type. More... | |
Parses a type appearing inside another LLVM dialect-compatible type.
This will try to parse any type in full form (including types with the !llvm
prefix), and on failure fall back to parsing the short-hand version of the LLVM dialect types without the !llvm
prefix.
Definition at line 287 of file LLVMTypeSyntax.cpp.
|
static |
Helper to use in parse lists.
Definition at line 329 of file LLVMTypeSyntax.cpp.
|
static |
If the given type is compatible with the LLVM dialect, prints it using internal functions to avoid getting a verbose !llvm
prefix.
Otherwise prints it as usual.
Definition at line 26 of file LLVMTypeSyntax.cpp.
References mlir::LLVM::isCompatibleType(), mlir::AsmPrinter::printType(), and mlir::LLVM::detail::printType().
|
static |
Returns the keyword to use for the given type.
Definition at line 34 of file LLVMTypeSyntax.cpp.
|
static |
Parses an LLVM dialect structure type.
llvm-type ::= struct<
(string-literal ,
)? packed
? (
llvm-type-list )
>
| struct<
string-literal >
| struct<
string-literal , opaque>
Definition at line 185 of file LLVMTypeSyntax.cpp.
Parses an LLVM dialect vector type.
llvm-type ::= vec<
? x
? integer x
llvm-type >
Supports both fixed and scalable vectors.
Definition at line 124 of file LLVMTypeSyntax.cpp.
|
static |
Prints a structure type.
Keeps track of known struct names to handle self- or mutually-referring structs without falling into infinite recursion.
Definition at line 56 of file LLVMTypeSyntax.cpp.
References mlir::failed(), mlir::LLVM::LLVMStructType::getName(), mlir::LLVM::LLVMStructType::isIdentified(), and mlir::AsmPrinter::tryStartCyclicPrint().
|
static |
Attempts to set the body of an identified structure type.
Reports a parsing error at subtypesLoc
in case of failure.
Definition at line 161 of file LLVMTypeSyntax.cpp.