MLIR  20.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
LLVMTypes.h File Reference
#include "mlir/IR/Types.h"
#include "mlir/Interfaces/DataLayoutInterfaces.h"
#include "mlir/Interfaces/MemorySlotInterfaces.h"
#include <optional>
#include "mlir/Dialect/LLVMIR/LLVMTypeInterfaces.h.inc"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h.inc"

Go to the source code of this file.

Classes

class  mlir::LLVM::LLVMStructType
 LLVM dialect structure type representing a collection of different-typed elements manipulated together. More...
 

Namespaces

 llvm
 The OpAsmOpInterface, see OpAsmInterface.td for more details.
 
 mlir
 Include the generated interface declarations.
 
 mlir::LLVM
 
 mlir::LLVM::detail
 

Macros

#define GET_TYPEDEF_CLASSES
 
#define DEFINE_TRIVIAL_LLVM_TYPE(ClassName, TypeName)
 

Enumerations

enum class  mlir::LLVM::PtrDLEntryPos { mlir::LLVM::Size = 0 , mlir::LLVM::Abi = 1 , mlir::LLVM::Preferred = 2 , mlir::LLVM::Index = 3 }
 The positions of different values in the data layout entry for pointers. More...
 

Functions

 mlir::LLVM::DEFINE_TRIVIAL_LLVM_TYPE (LLVMVoidType, "llvm.void")
 
 mlir::LLVM::DEFINE_TRIVIAL_LLVM_TYPE (LLVMPPCFP128Type, "llvm.ppc_fp128")
 
 mlir::LLVM::DEFINE_TRIVIAL_LLVM_TYPE (LLVMTokenType, "llvm.token")
 
 mlir::LLVM::DEFINE_TRIVIAL_LLVM_TYPE (LLVMLabelType, "llvm.label")
 
 mlir::LLVM::DEFINE_TRIVIAL_LLVM_TYPE (LLVMMetadataType, "llvm.metadata")
 
Type mlir::LLVM::detail::parseType (DialectAsmParser &parser)
 Parses an LLVM dialect type. More...
 
void mlir::LLVM::detail::printType (Type type, AsmPrinter &printer)
 Prints an LLVM Dialect type. More...
 
ParseResult mlir::LLVM::parsePrettyLLVMType (AsmParser &p, Type &type)
 Parse any MLIR type or a concise syntax for LLVM types. More...
 
void mlir::LLVM::printPrettyLLVMType (AsmPrinter &p, Type type)
 Print any MLIR type or a concise syntax for LLVM types. More...
 
bool mlir::LLVM::isCompatibleType (Type type)
 Returns true if the given type is compatible with the LLVM dialect. More...
 
bool mlir::LLVM::isCompatibleOuterType (Type type)
 Returns true if the given outer type is compatible with the LLVM dialect without checking its potential nested types such as struct elements. More...
 
bool mlir::LLVM::isCompatibleFloatingPointType (Type type)
 Returns true if the given type is a floating-point type compatible with the LLVM dialect. More...
 
bool mlir::LLVM::isCompatibleVectorType (Type type)
 Returns true if the given type is a vector type compatible with the LLVM dialect. More...
 
Type mlir::LLVM::getVectorElementType (Type type)
 Returns the element type of any vector type compatible with the LLVM dialect. More...
 
llvm::ElementCount mlir::LLVM::getVectorNumElements (Type type)
 Returns the element count of any LLVM-compatible vector type. More...
 
bool mlir::LLVM::isScalableVectorType (Type vectorType)
 Returns whether a vector type is scalable or not. More...
 
Type mlir::LLVM::getVectorType (Type elementType, unsigned numElements, bool isScalable=false)
 Creates an LLVM dialect-compatible vector type with the given element type and length. More...
 
Type mlir::LLVM::getVectorType (Type elementType, const llvm::ElementCount &numElements)
 Creates an LLVM dialect-compatible vector type with the given element type and length. More...
 
Type mlir::LLVM::getFixedVectorType (Type elementType, unsigned numElements)
 Creates an LLVM dialect-compatible type with the given element type and length. More...
 
Type mlir::LLVM::getScalableVectorType (Type elementType, unsigned numElements)
 Creates an LLVM dialect-compatible type with the given element type and length. More...
 
llvm::TypeSize mlir::LLVM::getPrimitiveTypeSizeInBits (Type type)
 Returns the size of the given primitive LLVM dialect-compatible type (including vectors) in bits, for example, the size of i16 is 16 and the size of vector<4xi16> is 64. More...
 
std::optional< uint64_t > mlir::LLVM::extractPointerSpecValue (Attribute attr, PtrDLEntryPos pos)
 Returns the value that corresponds to named position pos from the data layout entry attr assuming it's a dense integer elements attribute. More...
 

Macro Definition Documentation

◆ DEFINE_TRIVIAL_LLVM_TYPE

#define DEFINE_TRIVIAL_LLVM_TYPE (   ClassName,
  TypeName 
)
Value:
class ClassName : public Type::TypeBase<ClassName, Type, TypeStorage> { \
public: \
using Base::Base; \
static constexpr StringLiteral name = TypeName; \
}

Definition at line 61 of file LLVMTypes.h.

◆ GET_TYPEDEF_CLASSES

#define GET_TYPEDEF_CLASSES

Definition at line 50 of file LLVMTypes.h.