MLIR  20.0.0git
Functions
LLVM.cpp File Reference
#include "mlir-c/Dialect/LLVM.h"
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"
#include "mlir/CAPI/Registration.h"
#include "mlir/CAPI/Wrap.h"
#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "llvm-c/Core.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/SmallVectorExtras.h"

Go to the source code of this file.

Functions

MlirType mlirLLVMPointerTypeGet (MlirContext ctx, unsigned addressSpace)
 Creates an llvm.ptr type. More...
 
bool mlirTypeIsALLVMPointerType (MlirType type)
 Returns true if the type is an LLVM dialect pointer type. More...
 
unsigned mlirLLVMPointerTypeGetAddressSpace (MlirType pointerType)
 Returns address space of llvm.ptr. More...
 
MlirType mlirLLVMVoidTypeGet (MlirContext ctx)
 Creates an llmv.void type. More...
 
MlirType mlirLLVMArrayTypeGet (MlirType elementType, unsigned numElements)
 Creates an llvm.array type. More...
 
MlirType mlirLLVMFunctionTypeGet (MlirType resultType, intptr_t nArgumentTypes, MlirType const *argumentTypes, bool isVarArg)
 Creates an llvm.func type. More...
 
bool mlirTypeIsALLVMStructType (MlirType type)
 Returns true if the type is an LLVM dialect struct type. More...
 
bool mlirLLVMStructTypeIsLiteral (MlirType type)
 Returns true if the type is a literal (unnamed) LLVM struct type. More...
 
intptr_t mlirLLVMStructTypeGetNumElementTypes (MlirType type)
 Returns the number of fields in the struct. More...
 
MlirType mlirLLVMStructTypeGetElementType (MlirType type, intptr_t position)
 Returns the positions-th field of the struct. More...
 
bool mlirLLVMStructTypeIsPacked (MlirType type)
 Returns true if the struct is packed. More...
 
MlirStringRef mlirLLVMStructTypeGetIdentifier (MlirType type)
 Returns the identifier of the identified struct. More...
 
bool mlirLLVMStructTypeIsOpaque (MlirType type)
 Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body). More...
 
MlirType mlirLLVMStructTypeLiteralGet (MlirContext ctx, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
 Creates an LLVM literal (unnamed) struct type. More...
 
MlirType mlirLLVMStructTypeLiteralGetChecked (MlirLocation loc, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
 Creates an LLVM literal (unnamed) struct type if possible. More...
 
MlirType mlirLLVMStructTypeOpaqueGet (MlirContext ctx, MlirStringRef name)
 
MlirType mlirLLVMStructTypeIdentifiedGet (MlirContext ctx, MlirStringRef name)
 Creates an LLVM identified struct type with no body. More...
 
MlirType mlirLLVMStructTypeIdentifiedNewGet (MlirContext ctx, MlirStringRef name, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
 Creates an LLVM identified struct type with no body and a name starting with the given prefix. More...
 
MlirLogicalResult mlirLLVMStructTypeSetBody (MlirType structType, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
 Sets the body of the identified struct if it hasn't been set yet. More...
 
MlirAttribute mlirLLVMDIExpressionElemAttrGet (MlirContext ctx, unsigned int opcode, intptr_t nArguments, uint64_t const *arguments)
 Creates a LLVM DIExpressionElem attribute. More...
 
MlirAttribute mlirLLVMDIExpressionAttrGet (MlirContext ctx, intptr_t nOperations, MlirAttribute const *operations)
 Creates a LLVM DIExpression attribute. More...
 
MlirAttribute mlirLLVMDINullTypeAttrGet (MlirContext ctx)
 Creates a LLVM DINullType attribute. More...
 
MlirAttribute mlirLLVMDIBasicTypeAttrGet (MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits, MlirLLVMTypeEncoding encoding)
 Creates a LLVM DIBasicType attribute. More...
 
MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf (MlirAttribute recId)
 Creates a self-referencing LLVM DICompositeType attribute. More...
 
MlirAttribute mlirLLVMDICompositeTypeAttrGet (MlirContext ctx, MlirAttribute recId, bool isRecSelf, unsigned int tag, MlirAttribute name, MlirAttribute file, uint32_t line, MlirAttribute scope, MlirAttribute baseType, int64_t flags, uint64_t sizeInBits, uint64_t alignInBits, intptr_t nElements, MlirAttribute const *elements, MlirAttribute dataLocation, MlirAttribute rank, MlirAttribute allocated, MlirAttribute associated)
 Creates a LLVM DICompositeType attribute. More...
 
MlirAttribute mlirLLVMDIDerivedTypeAttrGet (MlirContext ctx, unsigned int tag, MlirAttribute name, MlirAttribute baseType, uint64_t sizeInBits, uint32_t alignInBits, uint64_t offsetInBits, int64_t dwarfAddressSpace, MlirAttribute extraData)
 Creates a LLVM DIDerivedType attribute. More...
 
MlirAttribute mlirLLVMDIStringTypeAttrGet (MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits, uint32_t alignInBits, MlirAttribute stringLength, MlirAttribute stringLengthExp, MlirAttribute stringLocationExp, MlirLLVMTypeEncoding encoding)
 
MlirAttribute mlirLLVMDIDerivedTypeAttrGetBaseType (MlirAttribute diDerivedType)
 Gets the base type from a LLVM DIDerivedType attribute. More...
 
MlirAttribute mlirLLVMCConvAttrGet (MlirContext ctx, MlirLLVMCConv cconv)
 Creates a LLVM CConv attribute. More...
 
MlirAttribute mlirLLVMComdatAttrGet (MlirContext ctx, MlirLLVMComdat comdat)
 Creates a LLVM Comdat attribute. More...
 
MlirAttribute mlirLLVMLinkageAttrGet (MlirContext ctx, MlirLLVMLinkage linkage)
 Creates a LLVM Linkage attribute. More...
 
MlirAttribute mlirLLVMDIFileAttrGet (MlirContext ctx, MlirAttribute name, MlirAttribute directory)
 Creates a LLVM DIFileAttr attribute. More...
 
MlirAttribute mlirLLVMDICompileUnitAttrGet (MlirContext ctx, MlirAttribute id, unsigned int sourceLanguage, MlirAttribute file, MlirAttribute producer, bool isOptimized, MlirLLVMDIEmissionKind emissionKind, MlirLLVMDINameTableKind nameTableKind)
 Creates a LLVM DICompileUnit attribute. More...
 
MlirAttribute mlirLLVMDIFlagsAttrGet (MlirContext ctx, uint64_t value)
 Creates a LLVM DIFlags attribute. More...
 
MlirAttribute mlirLLVMDILexicalBlockAttrGet (MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int line, unsigned int column)
 Creates a LLVM DILexicalBlock attribute. More...
 
MlirAttribute mlirLLVMDILexicalBlockFileAttrGet (MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int discriminator)
 Creates a LLVM DILexicalBlockFile attribute. More...
 
MlirAttribute mlirLLVMDILocalVariableAttrGet (MlirContext ctx, MlirAttribute scope, MlirAttribute name, MlirAttribute diFile, unsigned int line, unsigned int arg, unsigned int alignInBits, MlirAttribute diType, int64_t flags)
 Creates a LLVM DILocalVariableAttr attribute. More...
 
MlirAttribute mlirLLVMDISubroutineTypeAttrGet (MlirContext ctx, unsigned int callingConvention, intptr_t nTypes, MlirAttribute const *types)
 Creates a LLVM DISubroutineTypeAttr attribute. More...
 
MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf (MlirAttribute recId)
 Creates a self-referencing LLVM DISubprogramAttr attribute. More...
 
MlirAttribute mlirLLVMDISubprogramAttrGet (MlirContext ctx, MlirAttribute recId, bool isRecSelf, MlirAttribute id, MlirAttribute compileUnit, MlirAttribute scope, MlirAttribute name, MlirAttribute linkageName, MlirAttribute file, unsigned int line, unsigned int scopeLine, uint64_t subprogramFlags, MlirAttribute type, intptr_t nRetainedNodes, MlirAttribute const *retainedNodes, intptr_t nAnnotations, MlirAttribute const *annotations)
 Creates a LLVM DISubprogramAttr attribute. More...
 
MlirAttribute mlirLLVMDISubprogramAttrGetScope (MlirAttribute diSubprogram)
 Gets the scope from this DISubprogramAttr. More...
 
unsigned int mlirLLVMDISubprogramAttrGetLine (MlirAttribute diSubprogram)
 Gets the line from this DISubprogramAttr. More...
 
unsigned int mlirLLVMDISubprogramAttrGetScopeLine (MlirAttribute diSubprogram)
 Gets the scope line from this DISubprogram. More...
 
MlirAttribute mlirLLVMDISubprogramAttrGetCompileUnit (MlirAttribute diSubprogram)
 Gets the compile unit from this DISubprogram. More...
 
MlirAttribute mlirLLVMDISubprogramAttrGetFile (MlirAttribute diSubprogram)
 Gets the file from this DISubprogramAttr. More...
 
MlirAttribute mlirLLVMDISubprogramAttrGetType (MlirAttribute diSubprogram)
 Gets the type from this DISubprogramAttr. More...
 
MlirAttribute mlirLLVMDIModuleAttrGet (MlirContext ctx, MlirAttribute file, MlirAttribute scope, MlirAttribute name, MlirAttribute configMacros, MlirAttribute includePath, MlirAttribute apinotes, unsigned int line, bool isDecl)
 Creates a LLVM DIModuleAttr attribute. More...
 
MlirAttribute mlirLLVMDIModuleAttrGetScope (MlirAttribute diModule)
 Gets the scope of this DIModuleAttr. More...
 
MlirAttribute mlirLLVMDIImportedEntityAttrGet (MlirContext ctx, unsigned int tag, MlirAttribute scope, MlirAttribute entity, MlirAttribute file, unsigned int line, MlirAttribute name, intptr_t nElements, MlirAttribute const *elements)
 Creates a LLVM DIImportedEntityAttr attribute. More...
 
MlirAttribute mlirLLVMDIAnnotationAttrGet (MlirContext ctx, MlirAttribute name, MlirAttribute value)
 Creates a LLVM DIAnnotation attribute. More...
 

Function Documentation

◆ mlirLLVMArrayTypeGet()

MlirType mlirLLVMArrayTypeGet ( MlirType  elementType,
unsigned  numElements 
)

Creates an llvm.array type.

Definition at line 42 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMCConvAttrGet()

MlirAttribute mlirLLVMCConvAttrGet ( MlirContext  ctx,
MlirLLVMCConv  cconv 
)

Creates a LLVM CConv attribute.

Definition at line 220 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMComdatAttrGet()

MlirAttribute mlirLLVMComdatAttrGet ( MlirContext  ctx,
MlirLLVMComdat  comdat 
)

Creates a LLVM Comdat attribute.

Definition at line 224 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIAnnotationAttrGet()

MlirAttribute mlirLLVMDIAnnotationAttrGet ( MlirContext  ctx,
MlirAttribute  name,
MlirAttribute  value 
)

Creates a LLVM DIAnnotation attribute.

Definition at line 387 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIBasicTypeAttrGet()

MlirAttribute mlirLLVMDIBasicTypeAttrGet ( MlirContext  ctx,
unsigned int  tag,
MlirAttribute  name,
uint64_t  sizeInBits,
MlirLLVMTypeEncoding  encoding 
)

Creates a LLVM DIBasicType attribute.

Definition at line 153 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDICompileUnitAttrGet()

MlirAttribute mlirLLVMDICompileUnitAttrGet ( MlirContext  ctx,
MlirAttribute  id,
unsigned int  sourceLanguage,
MlirAttribute  file,
MlirAttribute  producer,
bool  isOptimized,
MlirLLVMDIEmissionKind  emissionKind,
MlirLLVMDINameTableKind  nameTableKind 
)

Creates a LLVM DICompileUnit attribute.

Definition at line 239 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDICompositeTypeAttrGet()

MlirAttribute mlirLLVMDICompositeTypeAttrGet ( MlirContext  ctx,
MlirAttribute  recId,
bool  isRecSelf,
unsigned int  tag,
MlirAttribute  name,
MlirAttribute  file,
uint32_t  line,
MlirAttribute  scope,
MlirAttribute  baseType,
int64_t  flags,
uint64_t  sizeInBits,
uint64_t  alignInBits,
intptr_t  nElements,
MlirAttribute const *  elements,
MlirAttribute  dataLocation,
MlirAttribute  rank,
MlirAttribute  allocated,
MlirAttribute  associated 
)

Creates a LLVM DICompositeType attribute.

Definition at line 167 of file LLVM.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMDICompositeTypeAttrGetRecSelf()

MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf ( MlirAttribute  recId)

Creates a self-referencing LLVM DICompositeType attribute.

Definition at line 162 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIDerivedTypeAttrGet()

MlirAttribute mlirLLVMDIDerivedTypeAttrGet ( MlirContext  ctx,
unsigned int  tag,
MlirAttribute  name,
MlirAttribute  baseType,
uint64_t  sizeInBits,
uint32_t  alignInBits,
uint64_t  offsetInBits,
int64_t  dwarfAddressSpace,
MlirAttribute  extraData 
)

Creates a LLVM DIDerivedType attribute.

Note that dwarfAddressSpace is an optional field, where MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL indicates null and non-negative values indicate a value present.

Definition at line 190 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIDerivedTypeAttrGetBaseType()

MlirAttribute mlirLLVMDIDerivedTypeAttrGetBaseType ( MlirAttribute  diDerivedType)

Gets the base type from a LLVM DIDerivedType attribute.

Definition at line 216 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIExpressionAttrGet()

MlirAttribute mlirLLVMDIExpressionAttrGet ( MlirContext  ctx,
intptr_t  nOperations,
MlirAttribute const *  operations 
)

Creates a LLVM DIExpression attribute.

Definition at line 137 of file LLVM.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMDIExpressionElemAttrGet()

MlirAttribute mlirLLVMDIExpressionElemAttrGet ( MlirContext  ctx,
unsigned int  opcode,
intptr_t  nArguments,
uint64_t const *  arguments 
)

Creates a LLVM DIExpressionElem attribute.

Definition at line 129 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIFileAttrGet()

MlirAttribute mlirLLVMDIFileAttrGet ( MlirContext  ctx,
MlirAttribute  name,
MlirAttribute  directory 
)

Creates a LLVM DIFileAttr attribute.

Definition at line 232 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIFlagsAttrGet()

MlirAttribute mlirLLVMDIFlagsAttrGet ( MlirContext  ctx,
uint64_t  value 
)

Creates a LLVM DIFlags attribute.

Definition at line 251 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIImportedEntityAttrGet()

MlirAttribute mlirLLVMDIImportedEntityAttrGet ( MlirContext  ctx,
unsigned int  tag,
MlirAttribute  scope,
MlirAttribute  entity,
MlirAttribute  file,
unsigned int  line,
MlirAttribute  name,
intptr_t  nElements,
MlirAttribute const *  elements 
)

Creates a LLVM DIImportedEntityAttr attribute.

Definition at line 373 of file LLVM.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMDILexicalBlockAttrGet()

MlirAttribute mlirLLVMDILexicalBlockAttrGet ( MlirContext  ctx,
MlirAttribute  scope,
MlirAttribute  file,
unsigned int  line,
unsigned int  column 
)

Creates a LLVM DILexicalBlock attribute.

Definition at line 255 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDILexicalBlockFileAttrGet()

MlirAttribute mlirLLVMDILexicalBlockFileAttrGet ( MlirContext  ctx,
MlirAttribute  scope,
MlirAttribute  file,
unsigned int  discriminator 
)

Creates a LLVM DILexicalBlockFile attribute.

Definition at line 265 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDILocalVariableAttrGet()

MlirAttribute mlirLLVMDILocalVariableAttrGet ( MlirContext  ctx,
MlirAttribute  scope,
MlirAttribute  name,
MlirAttribute  diFile,
unsigned int  line,
unsigned int  arg,
unsigned int  alignInBits,
MlirAttribute  diType,
int64_t  flags 
)

Creates a LLVM DILocalVariableAttr attribute.

Definition at line 274 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIModuleAttrGet()

MlirAttribute mlirLLVMDIModuleAttrGet ( MlirContext  ctx,
MlirAttribute  file,
MlirAttribute  scope,
MlirAttribute  name,
MlirAttribute  configMacros,
MlirAttribute  includePath,
MlirAttribute  apinotes,
unsigned int  line,
bool  isDecl 
)

Creates a LLVM DIModuleAttr attribute.

Definition at line 355 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIModuleAttrGetScope()

MlirAttribute mlirLLVMDIModuleAttrGetScope ( MlirAttribute  diModule)

Gets the scope of this DIModuleAttr.

Definition at line 369 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDINullTypeAttrGet()

MlirAttribute mlirLLVMDINullTypeAttrGet ( MlirContext  ctx)

Creates a LLVM DINullType attribute.

Definition at line 149 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDIStringTypeAttrGet()

MlirAttribute mlirLLVMDIStringTypeAttrGet ( MlirContext  ctx,
unsigned int  tag,
MlirAttribute  name,
uint64_t  sizeInBits,
uint32_t  alignInBits,
MlirAttribute  stringLength,
MlirAttribute  stringLengthExp,
MlirAttribute  stringLocationExp,
MlirLLVMTypeEncoding  encoding 
)

Definition at line 203 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGet()

MlirAttribute mlirLLVMDISubprogramAttrGet ( MlirContext  ctx,
MlirAttribute  recId,
bool  isRecSelf,
MlirAttribute  id,
MlirAttribute  compileUnit,
MlirAttribute  scope,
MlirAttribute  name,
MlirAttribute  linkageName,
MlirAttribute  file,
unsigned int  line,
unsigned int  scopeLine,
uint64_t  subprogramFlags,
MlirAttribute  type,
intptr_t  nRetainedNodes,
MlirAttribute const *  retainedNodes,
intptr_t  nAnnotations,
MlirAttribute const *  annotations 
)

Creates a LLVM DISubprogramAttr attribute.

Definition at line 301 of file LLVM.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMDISubprogramAttrGetCompileUnit()

MlirAttribute mlirLLVMDISubprogramAttrGetCompileUnit ( MlirAttribute  diSubprogram)

Gets the compile unit from this DISubprogram.

Definition at line 343 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetFile()

MlirAttribute mlirLLVMDISubprogramAttrGetFile ( MlirAttribute  diSubprogram)

Gets the file from this DISubprogramAttr.

Definition at line 347 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetLine()

unsigned int mlirLLVMDISubprogramAttrGetLine ( MlirAttribute  diSubprogram)

Gets the line from this DISubprogramAttr.

Definition at line 334 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMDISubprogramAttrGetRecSelf()

MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf ( MlirAttribute  recId)

Creates a self-referencing LLVM DISubprogramAttr attribute.

Definition at line 297 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetScope()

MlirAttribute mlirLLVMDISubprogramAttrGetScope ( MlirAttribute  diSubprogram)

Gets the scope from this DISubprogramAttr.

Definition at line 330 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetScopeLine()

unsigned int mlirLLVMDISubprogramAttrGetScopeLine ( MlirAttribute  diSubprogram)

Gets the scope line from this DISubprogram.

Definition at line 338 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMDISubprogramAttrGetType()

MlirAttribute mlirLLVMDISubprogramAttrGetType ( MlirAttribute  diSubprogram)

Gets the type from this DISubprogramAttr.

Definition at line 351 of file LLVM.cpp.

References mlir::getType(), unwrap(), and wrap().

◆ mlirLLVMDISubroutineTypeAttrGet()

MlirAttribute mlirLLVMDISubroutineTypeAttrGet ( MlirContext  ctx,
unsigned int  callingConvention,
intptr_t  nTypes,
MlirAttribute const *  types 
)

Creates a LLVM DISubroutineTypeAttr attribute.

Definition at line 284 of file LLVM.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMFunctionTypeGet()

MlirType mlirLLVMFunctionTypeGet ( MlirType  resultType,
intptr_t  nArgumentTypes,
MlirType const *  argumentTypes,
bool  isVarArg 
)

Creates an llvm.func type.

Definition at line 46 of file LLVM.cpp.

References mlir::get(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMLinkageAttrGet()

MlirAttribute mlirLLVMLinkageAttrGet ( MlirContext  ctx,
MlirLLVMLinkage  linkage 
)

Creates a LLVM Linkage attribute.

Definition at line 228 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMPointerTypeGet()

MlirType mlirLLVMPointerTypeGet ( MlirContext  ctx,
unsigned  addressSpace 
)

Creates an llvm.ptr type.

Definition at line 26 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirLLVMPointerTypeGetAddressSpace()

unsigned mlirLLVMPointerTypeGetAddressSpace ( MlirType  pointerType)

Returns address space of llvm.ptr.

Definition at line 34 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMStructTypeGetElementType()

MlirType mlirLLVMStructTypeGetElementType ( MlirType  type,
intptr_t  position 
)

Returns the positions-th field of the struct.

Asserts if the struct is opaque, not yet initialized or if the position is out of range.

Definition at line 66 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMStructTypeGetIdentifier()

MlirStringRef mlirLLVMStructTypeGetIdentifier ( MlirType  type)

Returns the identifier of the identified struct.

Asserts that the struct is identified, i.e., not literal.

Definition at line 74 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMStructTypeGetNumElementTypes()

intptr_t mlirLLVMStructTypeGetNumElementTypes ( MlirType  type)

Returns the number of fields in the struct.

Asserts if the struct is opaque or not yet initialized.

Definition at line 62 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMStructTypeIdentifiedGet()

MlirType mlirLLVMStructTypeIdentifiedGet ( MlirContext  ctx,
MlirStringRef  name 
)

Creates an LLVM identified struct type with no body.

If a struct type with this name already exists in the context, returns that type. Use mlirLLVMStructTypeIdentifiedNewGet to create a fresh struct type, potentially renaming it. The body should be set separatelty by calling mlirLLVMStructTypeSetBody, if it isn't set already.

Definition at line 105 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMStructTypeIdentifiedNewGet()

MlirType mlirLLVMStructTypeIdentifiedNewGet ( MlirContext  ctx,
MlirStringRef  name,
intptr_t  nFieldTypes,
MlirType const *  fieldTypes,
bool  isPacked 
)

Creates an LLVM identified struct type with no body and a name starting with the given prefix.

If a struct with the exact name as the given prefix already exists, appends an unspecified suffix to the name so that the name is unique in context.

Definition at line 109 of file LLVM.cpp.

References unwrap(), unwrapList(), and wrap().

◆ mlirLLVMStructTypeIsLiteral()

bool mlirLLVMStructTypeIsLiteral ( MlirType  type)

Returns true if the type is a literal (unnamed) LLVM struct type.

Definition at line 58 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMStructTypeIsOpaque()

bool mlirLLVMStructTypeIsOpaque ( MlirType  type)

Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).

Definition at line 78 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMStructTypeIsPacked()

bool mlirLLVMStructTypeIsPacked ( MlirType  type)

Returns true if the struct is packed.

Definition at line 70 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMStructTypeLiteralGet()

MlirType mlirLLVMStructTypeLiteralGet ( MlirContext  ctx,
intptr_t  nFieldTypes,
MlirType const *  fieldTypes,
bool  isPacked 
)

Creates an LLVM literal (unnamed) struct type.

This may assert if the fields have types not compatible with the LLVM dialect. For a graceful failure, use the checked version.

Definition at line 82 of file LLVM.cpp.

References unwrap(), unwrapList(), and wrap().

◆ mlirLLVMStructTypeLiteralGetChecked()

MlirType mlirLLVMStructTypeLiteralGetChecked ( MlirLocation  loc,
intptr_t  nFieldTypes,
MlirType const *  fieldTypes,
bool  isPacked 
)

Creates an LLVM literal (unnamed) struct type if possible.

Emits a diagnostic at the given location and returns null otherwise.

Definition at line 91 of file LLVM.cpp.

References mlir::emitError(), unwrap(), unwrapList(), and wrap().

◆ mlirLLVMStructTypeOpaqueGet()

MlirType mlirLLVMStructTypeOpaqueGet ( MlirContext  ctx,
MlirStringRef  name 
)

Definition at line 101 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMStructTypeSetBody()

MlirLogicalResult mlirLLVMStructTypeSetBody ( MlirType  structType,
intptr_t  nFieldTypes,
MlirType const *  fieldTypes,
bool  isPacked 
)

Sets the body of the identified struct if it hasn't been set yet.

Returns whether the operation was successful.

Definition at line 119 of file LLVM.cpp.

References unwrap(), unwrapList(), and wrap().

◆ mlirLLVMVoidTypeGet()

MlirType mlirLLVMVoidTypeGet ( MlirContext  ctx)

Creates an llmv.void type.

Definition at line 38 of file LLVM.cpp.

References mlir::get(), unwrap(), and wrap().

◆ mlirTypeIsALLVMPointerType()

bool mlirTypeIsALLVMPointerType ( MlirType  type)

Returns true if the type is an LLVM dialect pointer type.

Definition at line 30 of file LLVM.cpp.

References unwrap().

◆ mlirTypeIsALLVMStructType()

bool mlirTypeIsALLVMStructType ( MlirType  type)

Returns true if the type is an LLVM dialect struct type.

Definition at line 54 of file LLVM.cpp.

References unwrap().