MLIR 22.0.0git
LLVM.h File Reference
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"

Go to the source code of this file.

Macros

#define MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL   -1
 Constant to represent std::nullopt for dwarfAddressSpace to omit the field.

Typedefs

typedef enum MlirLLVMCConv MlirLLVMCConv
typedef enum MlirLLVMComdat MlirLLVMComdat
typedef enum MlirLLVMLinkage MlirLLVMLinkage
typedef enum MlirLLVMTypeEncoding MlirLLVMTypeEncoding
typedef enum MlirLLVMDIEmissionKind MlirLLVMDIEmissionKind
typedef enum MlirLLVMDINameTableKind MlirLLVMDINameTableKind

Enumerations

enum  MlirLLVMCConv {
  MlirLLVMCConvC = 0 , MlirLLVMCConvFast = 8 , MlirLLVMCConvCold = 9 , MlirLLVMCConvGHC = 10 ,
  MlirLLVMCConvHiPE = 11 , MlirLLVMCConvAnyReg = 13 , MlirLLVMCConvPreserveMost = 14 , MlirLLVMCConvPreserveAll = 15 ,
  MlirLLVMCConvSwift = 16 , MlirLLVMCConvCXX_FAST_TLS = 17 , MlirLLVMCConvTail = 18 , MlirLLVMCConvCFGuard_Check = 19 ,
  MlirLLVMCConvSwiftTail = 20 , MlirLLVMCConvX86_StdCall = 64 , MlirLLVMCConvX86_FastCall = 65 , MlirLLVMCConvARM_APCS = 66 ,
  MlirLLVMCConvARM_AAPCS = 67 , MlirLLVMCConvARM_AAPCS_VFP = 68 , MlirLLVMCConvMSP430_INTR = 69 , MlirLLVMCConvX86_ThisCall = 70 ,
  MlirLLVMCConvPTX_Kernel = 71 , MlirLLVMCConvPTX_Device = 72 , MlirLLVMCConvSPIR_FUNC = 75 , MlirLLVMCConvSPIR_KERNEL = 76 ,
  MlirLLVMCConvIntel_OCL_BI = 77 , MlirLLVMCConvX86_64_SysV = 78 , MlirLLVMCConvWin64 = 79 , MlirLLVMCConvX86_VectorCall = 80 ,
  MlirLLVMCConvDUMMY_HHVM = 81 , MlirLLVMCConvDUMMY_HHVM_C = 82 , MlirLLVMCConvX86_INTR = 83 , MlirLLVMCConvAVR_INTR = 84 ,
  MlirLLVMCConvAVR_BUILTIN = 86 , MlirLLVMCConvAMDGPU_VS = 87 , MlirLLVMCConvAMDGPU_GS = 88 , MlirLLVMCConvAMDGPU_CS = 90 ,
  MlirLLVMCConvAMDGPU_KERNEL = 91 , MlirLLVMCConvX86_RegCall = 92 , MlirLLVMCConvAMDGPU_HS = 93 , MlirLLVMCConvMSP430_BUILTIN = 94 ,
  MlirLLVMCConvAMDGPU_LS = 95 , MlirLLVMCConvAMDGPU_ES = 96 , MlirLLVMCConvAArch64_VectorCall = 97 , MlirLLVMCConvAArch64_SVE_VectorCall = 98 ,
  MlirLLVMCConvWASM_EmscriptenInvoke = 99 , MlirLLVMCConvAMDGPU_Gfx = 100 , MlirLLVMCConvM68k_INTR = 101
}
enum  MlirLLVMComdat {
  MlirLLVMComdatAny = 0 , MlirLLVMComdatExactMatch = 1 , MlirLLVMComdatLargest = 2 , MlirLLVMComdatNoDeduplicate = 3 ,
  MlirLLVMComdatSameSize = 4
}
enum  MlirLLVMLinkage {
  MlirLLVMLinkageExternal = 0 , MlirLLVMLinkageAvailableExternally = 1 , MlirLLVMLinkageLinkonce = 2 , MlirLLVMLinkageLinkonceODR = 3 ,
  MlirLLVMLinkageWeak = 4 , MlirLLVMLinkageWeakODR = 5 , MlirLLVMLinkageAppending = 6 , MlirLLVMLinkageInternal = 7 ,
  MlirLLVMLinkagePrivate = 8 , MlirLLVMLinkageExternWeak = 9 , MlirLLVMLinkageCommon = 10
}
enum  MlirLLVMTypeEncoding {
  MlirLLVMTypeEncodingAddress = 0x1 , MlirLLVMTypeEncodingBoolean = 0x2 , MlirLLVMTypeEncodingComplexFloat = 0x31 , MlirLLVMTypeEncodingFloatT = 0x4 ,
  MlirLLVMTypeEncodingSigned = 0x5 , MlirLLVMTypeEncodingSignedChar = 0x6 , MlirLLVMTypeEncodingUnsigned = 0x7 , MlirLLVMTypeEncodingUnsignedChar = 0x08 ,
  MlirLLVMTypeEncodingImaginaryFloat = 0x09 , MlirLLVMTypeEncodingPackedDecimal = 0x0a , MlirLLVMTypeEncodingNumericString = 0x0b , MlirLLVMTypeEncodingEdited = 0x0c ,
  MlirLLVMTypeEncodingSignedFixed = 0x0d , MlirLLVMTypeEncodingUnsignedFixed = 0x0e , MlirLLVMTypeEncodingDecimalFloat = 0x0f , MlirLLVMTypeEncodingUTF = 0x10 ,
  MlirLLVMTypeEncodingUCS = 0x11 , MlirLLVMTypeEncodingASCII = 0x12 , MlirLLVMTypeEncodingLoUser = 0x80 , MlirLLVMTypeEncodingHiUser = 0xff
}
enum  MlirLLVMDIEmissionKind { MlirLLVMDIEmissionKindNone = 0 , MlirLLVMDIEmissionKindFull = 1 , MlirLLVMDIEmissionKindLineTablesOnly = 2 , MlirLLVMDIEmissionKindDebugDirectivesOnly = 3 }
enum  MlirLLVMDINameTableKind { MlirLLVMDINameTableKindDefault = 0 , MlirLLVMDINameTableKindGNU = 1 , MlirLLVMDINameTableKindNone = 2 , MlirLLVMDINameTableKindApple = 3 }

Functions

 MLIR_DECLARE_CAPI_DIALECT_REGISTRATION (LLVM, llvm)
MLIR_CAPI_EXPORTED MlirType mlirLLVMPointerTypeGet (MlirContext ctx, unsigned addressSpace)
 Creates an llvm.ptr type.
MLIR_CAPI_EXPORTED bool mlirTypeIsALLVMPointerType (MlirType type)
 Returns true if the type is an LLVM dialect pointer type.
MLIR_CAPI_EXPORTED unsigned mlirLLVMPointerTypeGetAddressSpace (MlirType pointerType)
 Returns address space of llvm.ptr.
MLIR_CAPI_EXPORTED MlirType mlirLLVMVoidTypeGet (MlirContext ctx)
 Creates an llmv.void type.
MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGet (MlirType elementType, unsigned numElements)
 Creates an llvm.array type.
MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGetElementType (MlirType type)
 Returns the element type of the llvm.array type.
MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGet (MlirType resultType, intptr_t nArgumentTypes, MlirType const *argumentTypes, bool isVarArg)
 Creates an llvm.func type.
MLIR_CAPI_EXPORTED intptr_t mlirLLVMFunctionTypeGetNumInputs (MlirType type)
 Returns the number of input types.
MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGetInput (MlirType type, intptr_t pos)
 Returns the pos-th input type.
MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGetReturnType (MlirType type)
 Returns the return type of the function type.
MLIR_CAPI_EXPORTED bool mlirTypeIsALLVMStructType (MlirType type)
 Returns true if the type is an LLVM dialect struct type.
MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsLiteral (MlirType type)
 Returns true if the type is a literal (unnamed) LLVM struct type.
MLIR_CAPI_EXPORTED intptr_t mlirLLVMStructTypeGetNumElementTypes (MlirType type)
 Returns the number of fields in the struct.
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeGetElementType (MlirType type, intptr_t position)
 Returns the positions-th field of the struct.
MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsPacked (MlirType type)
 Returns true if the struct is packed.
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMStructTypeGetIdentifier (MlirType type)
 Returns the identifier of the identified struct.
MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsOpaque (MlirType type)
 Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeLiteralGet (MlirContext ctx, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
 Creates an LLVM literal (unnamed) struct type.
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeLiteralGetChecked (MlirLocation loc, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
 Creates an LLVM literal (unnamed) struct type if possible.
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeIdentifiedGet (MlirContext ctx, MlirStringRef name)
 Creates an LLVM identified struct type with no body.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeOpaqueGet (MlirContext ctx, MlirStringRef name)
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMCConvAttrGet (MlirContext ctx, MlirLLVMCConv cconv)
 Creates a LLVM CConv attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMComdatAttrGet (MlirContext ctx, MlirLLVMComdat comdat)
 Creates a LLVM Comdat attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMLinkageAttrGet (MlirContext ctx, MlirLLVMLinkage linkage)
 Creates a LLVM Linkage attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDINullTypeAttrGet (MlirContext ctx)
 Creates a LLVM DINullType attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIExpressionElemAttrGet (MlirContext ctx, unsigned int opcode, intptr_t nArguments, uint64_t const *arguments)
 Creates a LLVM DIExpressionElem attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIExpressionAttrGet (MlirContext ctx, intptr_t nOperations, MlirAttribute const *operations)
 Creates a LLVM DIExpression attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIBasicTypeAttrGet (MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits, MlirLLVMTypeEncoding encoding)
 Creates a LLVM DIBasicType attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf (MlirAttribute recId)
 Creates a self-referencing LLVM DICompositeType attribute.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIStringTypeAttrGet (MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits, uint32_t alignInBits, MlirAttribute stringLength, MlirAttribute stringLengthExp, MlirAttribute stringLocationExp, MlirLLVMTypeEncoding encoding)
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIDerivedTypeAttrGetBaseType (MlirAttribute diDerivedType)
 Gets the base type from a LLVM DIDerivedType attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFileAttrGet (MlirContext ctx, MlirAttribute name, MlirAttribute directory)
 Creates a LLVM DIFileAttr attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompileUnitAttrGet (MlirContext ctx, MlirAttribute id, unsigned int sourceLanguage, MlirAttribute file, MlirAttribute producer, bool isOptimized, MlirLLVMDIEmissionKind emissionKind, MlirLLVMDINameTableKind nameTableKind, MlirAttribute splitDebugFilename)
 Creates a LLVM DICompileUnit attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFlagsAttrGet (MlirContext ctx, uint64_t value)
 Creates a LLVM DIFlags attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDILexicalBlockAttrGet (MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int line, unsigned int column)
 Creates a LLVM DILexicalBlock attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDILexicalBlockFileAttrGet (MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int discriminator)
 Creates a LLVM DILexicalBlockFile attribute.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf (MlirAttribute recId)
 Creates a self-referencing LLVM DISubprogramAttr attribute.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIAnnotationAttrGet (MlirContext ctx, MlirAttribute name, MlirAttribute value)
 Creates a LLVM DIAnnotation attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetScope (MlirAttribute diSubprogram)
 Gets the scope from this DISubprogramAttr.
MLIR_CAPI_EXPORTED unsigned int mlirLLVMDISubprogramAttrGetLine (MlirAttribute diSubprogram)
 Gets the line from this DISubprogramAttr.
MLIR_CAPI_EXPORTED unsigned int mlirLLVMDISubprogramAttrGetScopeLine (MlirAttribute diSubprogram)
 Gets the scope line from this DISubprogram.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetCompileUnit (MlirAttribute diSubprogram)
 Gets the compile unit from this DISubprogram.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetFile (MlirAttribute diSubprogram)
 Gets the file from this DISubprogramAttr.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetType (MlirAttribute diSubprogram)
 Gets the type from this DISubprogramAttr.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubroutineTypeAttrGet (MlirContext ctx, unsigned int callingConvention, intptr_t nTypes, MlirAttribute const *types)
 Creates a LLVM DISubroutineTypeAttr attribute.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIModuleAttrGetScope (MlirAttribute diModule)
 Gets the scope of this DIModuleAttr.

Macro Definition Documentation

◆ MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL

#define MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL   -1

Constant to represent std::nullopt for dwarfAddressSpace to omit the field.

Definition at line 278 of file LLVM.h.

Typedef Documentation

◆ MlirLLVMCConv

Definition at line 171 of file LLVM.h.

◆ MlirLLVMComdat

Definition at line 184 of file LLVM.h.

◆ MlirLLVMDIEmissionKind

Definition at line 295 of file LLVM.h.

◆ MlirLLVMDINameTableKind

Definition at line 303 of file LLVM.h.

◆ MlirLLVMLinkage

Definition at line 203 of file LLVM.h.

◆ MlirLLVMTypeEncoding

Definition at line 243 of file LLVM.h.

Enumeration Type Documentation

◆ MlirLLVMCConv

Enumerator
MlirLLVMCConvC 
MlirLLVMCConvFast 
MlirLLVMCConvCold 
MlirLLVMCConvGHC 
MlirLLVMCConvHiPE 
MlirLLVMCConvAnyReg 
MlirLLVMCConvPreserveMost 
MlirLLVMCConvPreserveAll 
MlirLLVMCConvSwift 
MlirLLVMCConvCXX_FAST_TLS 
MlirLLVMCConvTail 
MlirLLVMCConvCFGuard_Check 
MlirLLVMCConvSwiftTail 
MlirLLVMCConvX86_StdCall 
MlirLLVMCConvX86_FastCall 
MlirLLVMCConvARM_APCS 
MlirLLVMCConvARM_AAPCS 
MlirLLVMCConvARM_AAPCS_VFP 
MlirLLVMCConvMSP430_INTR 
MlirLLVMCConvX86_ThisCall 
MlirLLVMCConvPTX_Kernel 
MlirLLVMCConvPTX_Device 
MlirLLVMCConvSPIR_FUNC 
MlirLLVMCConvSPIR_KERNEL 
MlirLLVMCConvIntel_OCL_BI 
MlirLLVMCConvX86_64_SysV 
MlirLLVMCConvWin64 
MlirLLVMCConvX86_VectorCall 
MlirLLVMCConvDUMMY_HHVM 
MlirLLVMCConvDUMMY_HHVM_C 
MlirLLVMCConvX86_INTR 
MlirLLVMCConvAVR_INTR 
MlirLLVMCConvAVR_BUILTIN 
MlirLLVMCConvAMDGPU_VS 
MlirLLVMCConvAMDGPU_GS 
MlirLLVMCConvAMDGPU_CS 
MlirLLVMCConvAMDGPU_KERNEL 
MlirLLVMCConvX86_RegCall 
MlirLLVMCConvAMDGPU_HS 
MlirLLVMCConvMSP430_BUILTIN 
MlirLLVMCConvAMDGPU_LS 
MlirLLVMCConvAMDGPU_ES 
MlirLLVMCConvAArch64_VectorCall 
MlirLLVMCConvAArch64_SVE_VectorCall 
MlirLLVMCConvWASM_EmscriptenInvoke 
MlirLLVMCConvAMDGPU_Gfx 
MlirLLVMCConvM68k_INTR 

Definition at line 122 of file LLVM.h.

◆ MlirLLVMComdat

Enumerator
MlirLLVMComdatAny 
MlirLLVMComdatExactMatch 
MlirLLVMComdatLargest 
MlirLLVMComdatNoDeduplicate 
MlirLLVMComdatSameSize 

Definition at line 177 of file LLVM.h.

◆ MlirLLVMDIEmissionKind

Enumerator
MlirLLVMDIEmissionKindNone 
MlirLLVMDIEmissionKindFull 
MlirLLVMDIEmissionKindLineTablesOnly 
MlirLLVMDIEmissionKindDebugDirectivesOnly 

Definition at line 289 of file LLVM.h.

◆ MlirLLVMDINameTableKind

Enumerator
MlirLLVMDINameTableKindDefault 
MlirLLVMDINameTableKindGNU 
MlirLLVMDINameTableKindNone 
MlirLLVMDINameTableKindApple 

Definition at line 297 of file LLVM.h.

◆ MlirLLVMLinkage

Enumerator
MlirLLVMLinkageExternal 
MlirLLVMLinkageAvailableExternally 
MlirLLVMLinkageLinkonce 
MlirLLVMLinkageLinkonceODR 
MlirLLVMLinkageWeak 
MlirLLVMLinkageWeakODR 
MlirLLVMLinkageAppending 
MlirLLVMLinkageInternal 
MlirLLVMLinkagePrivate 
MlirLLVMLinkageExternWeak 
MlirLLVMLinkageCommon 

Definition at line 190 of file LLVM.h.

◆ MlirLLVMTypeEncoding

Enumerator
MlirLLVMTypeEncodingAddress 
MlirLLVMTypeEncodingBoolean 
MlirLLVMTypeEncodingComplexFloat 
MlirLLVMTypeEncodingFloatT 
MlirLLVMTypeEncodingSigned 
MlirLLVMTypeEncodingSignedChar 
MlirLLVMTypeEncodingUnsigned 
MlirLLVMTypeEncodingUnsignedChar 
MlirLLVMTypeEncodingImaginaryFloat 
MlirLLVMTypeEncodingPackedDecimal 
MlirLLVMTypeEncodingNumericString 
MlirLLVMTypeEncodingEdited 
MlirLLVMTypeEncodingSignedFixed 
MlirLLVMTypeEncodingUnsignedFixed 
MlirLLVMTypeEncodingDecimalFloat 
MlirLLVMTypeEncodingUTF 
MlirLLVMTypeEncodingUCS 
MlirLLVMTypeEncodingASCII 
MlirLLVMTypeEncodingLoUser 
MlirLLVMTypeEncodingHiUser 

Definition at line 221 of file LLVM.h.

Function Documentation

◆ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION()

MLIR_DECLARE_CAPI_DIALECT_REGISTRATION ( LLVM ,
llvm  )

References MLIR_CAPI_EXPORTED.

◆ mlirLLVMArrayTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGet ( MlirType elementType,
unsigned numElements )

Creates an llvm.array type.

Definition at line 42 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMArrayTypeGetElementType()

MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGetElementType ( MlirType type)

Returns the element type of the llvm.array type.

Definition at line 46 of file LLVM.cpp.

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

◆ mlirLLVMCConvAttrGet()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMCConvAttrGet ( MlirContext ctx,
MlirLLVMCConv cconv )

Creates a LLVM CConv attribute.

Definition at line 237 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMComdatAttrGet()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMComdatAttrGet ( MlirContext ctx,
MlirLLVMComdat comdat )

Creates a LLVM Comdat attribute.

Definition at line 241 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIAnnotationAttrGet()

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

Creates a LLVM DIAnnotation attribute.

Definition at line 403 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIBasicTypeAttrGet()

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

Creates a LLVM DIBasicType attribute.

Definition at line 170 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDICompileUnitAttrGet()

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

Creates a LLVM DICompileUnit attribute.

Definition at line 255 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDICompositeTypeAttrGet()

MLIR_CAPI_EXPORTED 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 184 of file LLVM.cpp.

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

◆ mlirLLVMDICompositeTypeAttrGetRecSelf()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf ( MlirAttribute recId)

Creates a self-referencing LLVM DICompositeType attribute.

Definition at line 179 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIDerivedTypeAttrGet()

MLIR_CAPI_EXPORTED 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 207 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIDerivedTypeAttrGetBaseType()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIDerivedTypeAttrGetBaseType ( MlirAttribute diDerivedType)

Gets the base type from a LLVM DIDerivedType attribute.

Definition at line 233 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIExpressionAttrGet()

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

Creates a LLVM DIExpression attribute.

Definition at line 155 of file LLVM.cpp.

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

◆ mlirLLVMDIExpressionElemAttrGet()

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

Creates a LLVM DIExpressionElem attribute.

Definition at line 147 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIFileAttrGet()

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

Creates a LLVM DIFileAttr attribute.

Definition at line 249 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIFlagsAttrGet()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFlagsAttrGet ( MlirContext ctx,
uint64_t value )

Creates a LLVM DIFlags attribute.

Definition at line 267 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIImportedEntityAttrGet()

MLIR_CAPI_EXPORTED 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 389 of file LLVM.cpp.

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

◆ mlirLLVMDILexicalBlockAttrGet()

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

Creates a LLVM DILexicalBlock attribute.

Definition at line 271 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDILexicalBlockFileAttrGet()

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

Creates a LLVM DILexicalBlockFile attribute.

Definition at line 281 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDILocalVariableAttrGet()

MLIR_CAPI_EXPORTED 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 290 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIModuleAttrGet()

MLIR_CAPI_EXPORTED 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 371 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIModuleAttrGetScope()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIModuleAttrGetScope ( MlirAttribute diModule)

Gets the scope of this DIModuleAttr.

Definition at line 385 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDINullTypeAttrGet()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDINullTypeAttrGet ( MlirContext ctx)

Creates a LLVM DINullType attribute.

Definition at line 166 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDIStringTypeAttrGet()

MLIR_CAPI_EXPORTED 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 220 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGet()

MLIR_CAPI_EXPORTED 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 317 of file LLVM.cpp.

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

◆ mlirLLVMDISubprogramAttrGetCompileUnit()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetCompileUnit ( MlirAttribute diSubprogram)

Gets the compile unit from this DISubprogram.

Definition at line 359 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetFile()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetFile ( MlirAttribute diSubprogram)

Gets the file from this DISubprogramAttr.

Definition at line 363 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetLine()

MLIR_CAPI_EXPORTED unsigned int mlirLLVMDISubprogramAttrGetLine ( MlirAttribute diSubprogram)

Gets the line from this DISubprogramAttr.

Definition at line 350 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMDISubprogramAttrGetRecSelf()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf ( MlirAttribute recId)

Creates a self-referencing LLVM DISubprogramAttr attribute.

Definition at line 313 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetScope()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetScope ( MlirAttribute diSubprogram)

Gets the scope from this DISubprogramAttr.

Definition at line 346 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMDISubprogramAttrGetScopeLine()

MLIR_CAPI_EXPORTED unsigned int mlirLLVMDISubprogramAttrGetScopeLine ( MlirAttribute diSubprogram)

Gets the scope line from this DISubprogram.

Definition at line 354 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMDISubprogramAttrGetType()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetType ( MlirAttribute diSubprogram)

Gets the type from this DISubprogramAttr.

Definition at line 367 of file LLVM.cpp.

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

◆ mlirLLVMDISubroutineTypeAttrGet()

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

Creates a LLVM DISubroutineTypeAttr attribute.

Definition at line 300 of file LLVM.cpp.

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

◆ mlirLLVMFunctionTypeGet()

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

Creates an llvm.func type.

Definition at line 50 of file LLVM.cpp.

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

◆ mlirLLVMFunctionTypeGetInput()

MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGetInput ( MlirType type,
intptr_t pos )

Returns the pos-th input type.

Definition at line 62 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMFunctionTypeGetNumInputs()

MLIR_CAPI_EXPORTED intptr_t mlirLLVMFunctionTypeGetNumInputs ( MlirType type)

Returns the number of input types.

Definition at line 58 of file LLVM.cpp.

References unwrap().

◆ mlirLLVMFunctionTypeGetReturnType()

MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGetReturnType ( MlirType type)

Returns the return type of the function type.

Definition at line 68 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMLinkageAttrGet()

MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMLinkageAttrGet ( MlirContext ctx,
MlirLLVMLinkage linkage )

Creates a LLVM Linkage attribute.

Definition at line 245 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirLLVMPointerTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirLLVMPointerTypeGet ( MlirContext ctx,
unsigned addressSpace )

Creates an llvm.ptr type.

Definition at line 26 of file LLVM.cpp.

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

Referenced by mlirLLVMPointerTypeGet(), and populateDialectLLVMSubmodule().

◆ mlirLLVMPointerTypeGetAddressSpace()

MLIR_CAPI_EXPORTED unsigned mlirLLVMPointerTypeGetAddressSpace ( MlirType pointerType)

Returns address space of llvm.ptr.

Definition at line 34 of file LLVM.cpp.

References unwrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeGetElementType()

MLIR_CAPI_EXPORTED 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 84 of file LLVM.cpp.

References unwrap(), and wrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeGetIdentifier()

MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMStructTypeGetIdentifier ( MlirType type)

Returns the identifier of the identified struct.

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

Definition at line 92 of file LLVM.cpp.

References unwrap(), and wrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeGetNumElementTypes()

MLIR_CAPI_EXPORTED 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 80 of file LLVM.cpp.

References unwrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeIdentifiedGet()

MLIR_CAPI_EXPORTED 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 123 of file LLVM.cpp.

References unwrap(), and wrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeIdentifiedNewGet()

MLIR_CAPI_EXPORTED 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 127 of file LLVM.cpp.

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

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeIsLiteral()

MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsLiteral ( MlirType type)

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

Definition at line 76 of file LLVM.cpp.

References unwrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeIsOpaque()

MLIR_CAPI_EXPORTED 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 96 of file LLVM.cpp.

References unwrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeIsPacked()

MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsPacked ( MlirType type)

Returns true if the struct is packed.

Definition at line 88 of file LLVM.cpp.

References unwrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeLiteralGet()

MLIR_CAPI_EXPORTED 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 100 of file LLVM.cpp.

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

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeLiteralGetChecked()

MLIR_CAPI_EXPORTED 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 109 of file LLVM.cpp.

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

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeOpaqueGet()

MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeOpaqueGet ( MlirContext ctx,
MlirStringRef name )

Definition at line 119 of file LLVM.cpp.

References unwrap(), and wrap().

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMStructTypeSetBody()

MLIR_CAPI_EXPORTED 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 137 of file LLVM.cpp.

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

Referenced by populateDialectLLVMSubmodule().

◆ mlirLLVMVoidTypeGet()

MLIR_CAPI_EXPORTED MlirType mlirLLVMVoidTypeGet ( MlirContext ctx)

Creates an llmv.void type.

Definition at line 38 of file LLVM.cpp.

References unwrap(), and wrap().

◆ mlirTypeIsALLVMPointerType()

MLIR_CAPI_EXPORTED 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().

Referenced by populateDialectLLVMSubmodule().

◆ mlirTypeIsALLVMStructType()

MLIR_CAPI_EXPORTED bool mlirTypeIsALLVMStructType ( MlirType type)

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

Definition at line 72 of file LLVM.cpp.

References unwrap().

Referenced by populateDialectLLVMSubmodule().