MLIR 23.0.0git
LLVM.h
Go to the documentation of this file.
1//===-- mlir-c/Dialect/LLVM.h - C API for LLVM --------------------*- C -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM
4// Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef MLIR_C_DIALECT_LLVM_H
11#define MLIR_C_DIALECT_LLVM_H
12
13#include "mlir-c/IR.h"
14#include "mlir-c/Support.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
21
22/// Creates an llvm.ptr type.
23MLIR_CAPI_EXPORTED MlirType mlirLLVMPointerTypeGet(MlirContext ctx,
24 unsigned addressSpace);
25
27
29
30/// Returns `true` if the type is an LLVM dialect pointer type.
32
33/// Returns address space of llvm.ptr
34MLIR_CAPI_EXPORTED unsigned
35mlirLLVMPointerTypeGetAddressSpace(MlirType pointerType);
36
37/// Creates an llmv.void type.
38MLIR_CAPI_EXPORTED MlirType mlirLLVMVoidTypeGet(MlirContext ctx);
39
41
42/// Creates an llvm.array type.
43MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGet(MlirType elementType,
44 unsigned numElements);
45
47
48/// Returns the element type of the llvm.array type.
50
51/// Creates an llvm.func type.
52MLIR_CAPI_EXPORTED MlirType
53mlirLLVMFunctionTypeGet(MlirType resultType, intptr_t nArgumentTypes,
54 MlirType const *argumentTypes, bool isVarArg);
55
57
58/// Returns the number of input types.
60
61/// Returns the pos-th input type.
63 intptr_t pos);
64
65/// Returns the return type of the function type.
67
68/// Returns `true` if the type is an LLVM dialect struct type.
70
72
74
75/// Returns `true` if the type is a literal (unnamed) LLVM struct type.
77
78/// Returns the number of fields in the struct. Asserts if the struct is opaque
79/// or not yet initialized.
81
82/// Returns the `positions`-th field of the struct. Asserts if the struct is
83/// opaque, not yet initialized or if the position is out of range.
85 intptr_t position);
86
87/// Returns `true` if the struct is packed.
89
90/// Returns the identifier of the identified struct. Asserts that the struct is
91/// identified, i.e., not literal.
93
94/// Returns `true` is the struct is explicitly opaque (will not have a body) or
95/// uninitialized (will eventually have a body).
97
98/// Creates an LLVM literal (unnamed) struct type. This may assert if the fields
99/// have types not compatible with the LLVM dialect. For a graceful failure, use
100/// the checked version.
101MLIR_CAPI_EXPORTED MlirType
102mlirLLVMStructTypeLiteralGet(MlirContext ctx, intptr_t nFieldTypes,
103 MlirType const *fieldTypes, bool isPacked);
104
105/// Creates an LLVM literal (unnamed) struct type if possible. Emits a
106/// diagnostic at the given location and returns null otherwise.
107MLIR_CAPI_EXPORTED MlirType
108mlirLLVMStructTypeLiteralGetChecked(MlirLocation loc, intptr_t nFieldTypes,
109 MlirType const *fieldTypes, bool isPacked);
110
111/// Creates an LLVM identified struct type with no body. If a struct type with
112/// this name already exists in the context, returns that type. Use
113/// mlirLLVMStructTypeIdentifiedNewGet to create a fresh struct type,
114/// potentially renaming it. The body should be set separatelty by calling
115/// mlirLLVMStructTypeSetBody, if it isn't set already.
117 MlirStringRef name);
118
119/// Creates an LLVM identified struct type with no body and a name starting with
120/// the given prefix. If a struct with the exact name as the given prefix
121/// already exists, appends an unspecified suffix to the name so that the name
122/// is unique in context.
124 MlirContext ctx, MlirStringRef name, intptr_t nFieldTypes,
125 MlirType const *fieldTypes, bool isPacked);
126
127MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeOpaqueGet(MlirContext ctx,
128 MlirStringRef name);
129
130/// Sets the body of the identified struct if it hasn't been set yet. Returns
131/// whether the operation was successful.
133mlirLLVMStructTypeSetBody(MlirType structType, intptr_t nFieldTypes,
134 MlirType const *fieldTypes, bool isPacked);
135
184};
186
187/// Creates a LLVM CConv attribute.
188MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMCConvAttrGet(MlirContext ctx,
189 MlirLLVMCConv cconv);
190
192
201
202/// Creates a LLVM Comdat attribute.
203MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMComdatAttrGet(MlirContext ctx,
204 MlirLLVMComdat comdat);
205
207
222
223/// Creates a LLVM Linkage attribute.
224MLIR_CAPI_EXPORTED MlirAttribute
225mlirLLVMLinkageAttrGet(MlirContext ctx, MlirLLVMLinkage linkage);
226
228
229/// Creates a LLVM DINullType attribute.
230MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDINullTypeAttrGet(MlirContext ctx);
231
233
234/// Creates a LLVM DIExpressionElem attribute.
235MLIR_CAPI_EXPORTED MlirAttribute
236mlirLLVMDIExpressionElemAttrGet(MlirContext ctx, unsigned int opcode,
237 intptr_t nArguments, uint64_t const *arguments);
238
240
241/// Creates a LLVM DIExpression attribute.
243 MlirContext ctx, intptr_t nOperations, MlirAttribute const *operations);
244
246
270
271/// Creates a LLVM DIBasicType attribute.
273 MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits,
274 MlirLLVMTypeEncoding encoding);
275
277
278/// Creates a self-referencing LLVM DICompositeType attribute.
279MLIR_CAPI_EXPORTED MlirAttribute
280mlirLLVMDICompositeTypeAttrGetRecSelf(MlirAttribute recId);
281
282/// Creates a LLVM DICompositeType attribute.
284 MlirContext ctx, MlirAttribute recId, bool isRecSelf, unsigned int tag,
285 MlirAttribute name, MlirAttribute file, uint32_t line, MlirAttribute scope,
286 MlirAttribute baseType, int64_t flags, uint64_t sizeInBits,
287 uint64_t alignInBits, intptr_t nElements, MlirAttribute const *elements,
288 MlirAttribute dataLocation, MlirAttribute rank, MlirAttribute allocated,
289 MlirAttribute associated);
290
292
293/// Creates a LLVM DIDerivedType attribute. Note that `dwarfAddressSpace` is an
294/// optional field, where `MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL` indicates null
295/// and non-negative values indicate a value present.
297 MlirContext ctx, unsigned int tag, MlirAttribute name,
298 MlirAttribute baseType, uint64_t sizeInBits, uint32_t alignInBits,
299 uint64_t offsetInBits, int64_t dwarfAddressSpace, int64_t flags,
300 MlirAttribute extraData);
301
303
305 MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits,
306 uint32_t alignInBits, MlirAttribute stringLength,
307 MlirAttribute stringLengthExp, MlirAttribute stringLocationExp,
308 MlirLLVMTypeEncoding encoding);
309
311
312/// Constant to represent std::nullopt for dwarfAddressSpace to omit the field.
313#define MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL -1
314
315/// Gets the base type from a LLVM DIDerivedType attribute.
316MLIR_CAPI_EXPORTED MlirAttribute
317mlirLLVMDIDerivedTypeAttrGetBaseType(MlirAttribute diDerivedType);
318
319/// Creates a LLVM DIFileAttr attribute.
320MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFileAttrGet(MlirContext ctx,
321 MlirAttribute name,
322 MlirAttribute directory);
323
325
333
341
342/// Creates a LLVM DICompileUnit attribute.
344 MlirContext ctx, MlirAttribute id, unsigned int sourceLanguage,
345 MlirAttribute file, MlirAttribute producer, bool isOptimized,
346 MlirLLVMDIEmissionKind emissionKind, MlirLLVMDINameTableKind nameTableKind,
347 MlirAttribute splitDebugFilename);
348
350
351/// Creates a LLVM DIFlags attribute.
352MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFlagsAttrGet(MlirContext ctx,
353 uint64_t value);
354
356
357/// Creates a LLVM DILexicalBlock attribute.
359 MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int line,
360 unsigned int column);
361
363
364/// Creates a LLVM DILexicalBlockFile attribute.
366 MlirContext ctx, MlirAttribute scope, MlirAttribute file,
367 unsigned int discriminator);
368
370
371/// Creates a LLVM DILocalVariableAttr attribute.
373 MlirContext ctx, MlirAttribute scope, MlirAttribute name,
374 MlirAttribute diFile, unsigned int line, unsigned int arg,
375 unsigned int alignInBits, MlirAttribute diType, int64_t flags);
376
378
379/// Creates a self-referencing LLVM DISubprogramAttr attribute.
380MLIR_CAPI_EXPORTED MlirAttribute
381mlirLLVMDISubprogramAttrGetRecSelf(MlirAttribute recId);
382
383/// Creates a LLVM DISubprogramAttr attribute.
385 MlirContext ctx, MlirAttribute recId, bool isRecSelf, MlirAttribute id,
386 MlirAttribute compileUnit, MlirAttribute scope, MlirAttribute name,
387 MlirAttribute linkageName, MlirAttribute file, unsigned int line,
388 unsigned int scopeLine, uint64_t subprogramFlags, MlirAttribute type,
389 intptr_t nRetainedNodes, MlirAttribute const *retainedNodes,
390 intptr_t nAnnotations, MlirAttribute const *annotations);
391
393
394/// Creates a LLVM DIAnnotation attribute.
396 MlirContext ctx, MlirAttribute name, MlirAttribute value);
397
399
400/// Gets the scope from this DISubprogramAttr.
401MLIR_CAPI_EXPORTED MlirAttribute
402mlirLLVMDISubprogramAttrGetScope(MlirAttribute diSubprogram);
403
404/// Gets the line from this DISubprogramAttr.
405MLIR_CAPI_EXPORTED unsigned int
406mlirLLVMDISubprogramAttrGetLine(MlirAttribute diSubprogram);
407
408/// Gets the scope line from this DISubprogram.
409MLIR_CAPI_EXPORTED unsigned int
410mlirLLVMDISubprogramAttrGetScopeLine(MlirAttribute diSubprogram);
411
412/// Gets the compile unit from this DISubprogram.
413MLIR_CAPI_EXPORTED MlirAttribute
414mlirLLVMDISubprogramAttrGetCompileUnit(MlirAttribute diSubprogram);
415
416/// Gets the file from this DISubprogramAttr.
417MLIR_CAPI_EXPORTED MlirAttribute
418mlirLLVMDISubprogramAttrGetFile(MlirAttribute diSubprogram);
419
420/// Gets the type from this DISubprogramAttr.
421MLIR_CAPI_EXPORTED MlirAttribute
422mlirLLVMDISubprogramAttrGetType(MlirAttribute diSubprogram);
423
424/// Creates a LLVM DISubroutineTypeAttr attribute.
425MLIR_CAPI_EXPORTED MlirAttribute
426mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx, unsigned int callingConvention,
427 intptr_t nTypes, MlirAttribute const *types);
428
430
431/// Creates a LLVM DIModuleAttr attribute.
433 MlirContext ctx, MlirAttribute file, MlirAttribute scope,
434 MlirAttribute name, MlirAttribute configMacros, MlirAttribute includePath,
435 MlirAttribute apinotes, unsigned int line, bool isDecl);
436
438
439/// Creates a LLVM DIImportedEntityAttr attribute.
441 MlirContext ctx, unsigned int tag, MlirAttribute scope,
442 MlirAttribute entity, MlirAttribute file, unsigned int line,
443 MlirAttribute name, intptr_t nElements, MlirAttribute const *elements);
444
446
447/// Gets the scope of this DIModuleAttr.
448MLIR_CAPI_EXPORTED MlirAttribute
449mlirLLVMDIModuleAttrGetScope(MlirAttribute diModule);
450
451#ifdef __cplusplus
452}
453#endif
454
455#include "mlir/Dialect/LLVMIR/Transforms/Passes.capi.h.inc"
456
457#endif // MLIR_C_DIALECT_LLVM_H
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDISubprogramAttrGetName(void)
Definition LLVM.cpp:436
MLIR_CAPI_EXPORTED unsigned int mlirLLVMDISubprogramAttrGetScopeLine(MlirAttribute diSubprogram)
Gets the scope line from this DISubprogram.
Definition LLVM.cpp:448
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 LLVM.cpp:226
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.
Definition LLVM.cpp:153
MlirLLVMDINameTableKind
Definition LLVM.h:334
@ MlirLLVMDINameTableKindNone
Definition LLVM.h:337
@ MlirLLVMDINameTableKindApple
Definition LLVM.h:338
@ MlirLLVMDINameTableKindDefault
Definition LLVM.h:335
@ MlirLLVMDINameTableKindGNU
Definition LLVM.h:336
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeIdentifiedGet(MlirContext ctx, MlirStringRef name)
Creates an LLVM identified struct type with no body.
Definition LLVM.cpp:149
MLIR_CAPI_EXPORTED bool mlirTypeIsALLVMPointerType(MlirType type)
Returns true if the type is an LLVM dialect pointer type.
Definition LLVM.cpp:38
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.
Definition LLVM.cpp:163
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIStringTypeAttrGetName(void)
Definition LLVM.cpp:284
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMLinkageAttrGetName(void)
Definition LLVM.cpp:309
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMStructTypeGetName(void)
Definition LLVM.cpp:98
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDILocalVariableAttrGetName(void)
Definition LLVM.cpp:382
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMFunctionTypeGetName(void)
Definition LLVM.cpp:72
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMCConvAttrGet(MlirContext ctx, MlirLLVMCConv cconv)
Creates a LLVM CConv attribute.
Definition LLVM.cpp:293
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIAnnotationAttrGetName(void)
Definition LLVM.cpp:511
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIFileAttrGetName(void)
Definition LLVM.cpp:319
MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGetInput(MlirType type, intptr_t pos)
Returns the pos-th input type.
Definition LLVM.cpp:80
MLIR_CAPI_EXPORTED MlirType mlirLLVMPointerTypeGet(MlirContext ctx, unsigned addressSpace)
Creates an llvm.ptr type.
Definition LLVM.cpp:26
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIExpressionAttrGetName(void)
Definition LLVM.cpp:196
MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGetElementType(MlirType type)
Returns the element type of the llvm.array type.
Definition LLVM.cpp:60
MlirLLVMLinkage
Definition LLVM.h:208
@ MlirLLVMLinkageExternal
Definition LLVM.h:209
@ MlirLLVMLinkageLinkonce
Definition LLVM.h:211
@ MlirLLVMLinkageExternWeak
Definition LLVM.h:218
@ MlirLLVMLinkageWeakODR
Definition LLVM.h:214
@ MlirLLVMLinkageCommon
Definition LLVM.h:219
@ MlirLLVMLinkageWeak
Definition LLVM.h:213
@ MlirLLVMLinkageAppending
Definition LLVM.h:215
@ MlirLLVMLinkageAvailableExternally
Definition LLVM.h:210
@ MlirLLVMLinkageLinkonceODR
Definition LLVM.h:212
@ MlirLLVMLinkageInternal
Definition LLVM.h:216
@ MlirLLVMLinkagePrivate
Definition LLVM.h:217
MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsLiteral(MlirType type)
Returns true if the type is a literal (unnamed) LLVM struct type.
Definition LLVM.cpp:102
MLIR_CAPI_EXPORTED MlirType mlirLLVMArrayTypeGet(MlirType elementType, unsigned numElements)
Creates an llvm.array type.
Definition LLVM.cpp:52
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMLinkageAttrGet(MlirContext ctx, MlirLLVMLinkage linkage)
Creates a LLVM Linkage attribute.
Definition LLVM.cpp:305
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMStructTypeGetIdentifier(MlirType type)
Returns the identifier of the identified struct.
Definition LLVM.cpp:118
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDICompositeTypeAttrGetName(void)
Definition LLVM.cpp:249
MlirLLVMComdat
Definition LLVM.h:193
@ MlirLLVMComdatSameSize
Definition LLVM.h:198
@ MlirLLVMComdatExactMatch
Definition LLVM.h:195
@ MlirLLVMComdatNoDeduplicate
Definition LLVM.h:197
@ MlirLLVMComdatAny
Definition LLVM.h:194
@ MlirLLVMComdatLargest
Definition LLVM.h:196
MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsOpaque(MlirType type)
Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventua...
Definition LLVM.cpp:122
MLIR_CAPI_EXPORTED bool mlirLLVMStructTypeIsPacked(MlirType type)
Returns true if the struct is packed.
Definition LLVM.cpp:114
MLIR_CAPI_EXPORTED intptr_t mlirLLVMStructTypeGetNumElementTypes(MlirType type)
Returns the number of fields in the struct.
Definition LLVM.cpp:106
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDILexicalBlockAttrGetName(void)
Definition LLVM.cpp:355
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIExpressionAttrGet(MlirContext ctx, intptr_t nOperations, MlirAttribute const *operations)
Creates a LLVM DIExpression attribute.
Definition LLVM.cpp:185
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetScope(MlirAttribute diSubprogram)
Gets the scope from this DISubprogramAttr.
Definition LLVM.cpp:440
MLIR_CAPI_EXPORTED MlirTypeID mlirLLVMPointerTypeGetTypeID(void)
Definition LLVM.cpp:34
MLIR_CAPI_EXPORTED MlirTypeID mlirLLVMStructTypeGetTypeID(void)
Definition LLVM.cpp:94
MLIR_CAPI_EXPORTED MlirType mlirLLVMVoidTypeGet(MlirContext ctx)
Creates an llmv.void type.
Definition LLVM.cpp:46
MLIR_CAPI_EXPORTED intptr_t mlirLLVMFunctionTypeGetNumInputs(MlirType type)
Returns the number of input types.
Definition LLVM.cpp:76
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx, unsigned int callingConvention, intptr_t nTypes, MlirAttribute const *types)
Creates a LLVM DISubroutineTypeAttr attribute.
Definition LLVM.cpp:386
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetFile(MlirAttribute diSubprogram)
Gets the file from this DISubprogramAttr.
Definition LLVM.cpp:457
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIModuleAttrGetName(void)
Definition LLVM.cpp:479
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeGetElementType(MlirType type, intptr_t position)
Returns the positions-th field of the struct.
Definition LLVM.cpp:110
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 LLVM.cpp:372
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDICompileUnitAttrGetName(void)
Definition LLVM.cpp:333
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMArrayTypeGetName(void)
Definition LLVM.cpp:56
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 LLVM.cpp:407
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIFlagsAttrGetName(void)
Definition LLVM.cpp:341
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDILexicalBlockFileAttrGet(MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int discriminator)
Creates a LLVM DILexicalBlockFile attribute.
Definition LLVM.cpp:359
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIBasicTypeAttrGet(MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits, MlirLLVMTypeEncoding encoding)
Creates a LLVM DIBasicType attribute.
Definition LLVM.cpp:208
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFileAttrGet(MlirContext ctx, MlirAttribute name, MlirAttribute directory)
Creates a LLVM DIFileAttr attribute.
Definition LLVM.cpp:313
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIDerivedTypeAttrGetName(void)
Definition LLVM.cpp:268
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMComdatAttrGet(MlirContext ctx, MlirLLVMComdat comdat)
Creates a LLVM Comdat attribute.
Definition LLVM.cpp:299
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMPointerTypeGetName(void)
Definition LLVM.cpp:30
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIModuleAttrGetScope(MlirAttribute diModule)
Gets the scope of this DIModuleAttr.
Definition LLVM.cpp:483
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeOpaqueGet(MlirContext ctx, MlirStringRef name)
Definition LLVM.cpp:145
MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGet(MlirType resultType, intptr_t nArgumentTypes, MlirType const *argumentTypes, bool isVarArg)
Creates an llvm.func type.
Definition LLVM.cpp:64
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf(MlirAttribute recId)
Creates a self-referencing LLVM DICompositeType attribute.
Definition LLVM.cpp:221
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFlagsAttrGet(MlirContext ctx, uint64_t value)
Creates a LLVM DIFlags attribute.
Definition LLVM.cpp:337
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDISubroutineTypeAttrGetName(void)
Definition LLVM.cpp:399
MlirLLVMCConv
Definition LLVM.h:136
@ MlirLLVMCConvPTX_Device
Definition LLVM.h:158
@ MlirLLVMCConvWASM_EmscriptenInvoke
Definition LLVM.h:181
@ MlirLLVMCConvX86_VectorCall
Definition LLVM.h:164
@ MlirLLVMCConvARM_AAPCS_VFP
Definition LLVM.h:154
@ MlirLLVMCConvMSP430_BUILTIN
Definition LLVM.h:176
@ MlirLLVMCConvX86_FastCall
Definition LLVM.h:151
@ MlirLLVMCConvHiPE
Definition LLVM.h:141
@ MlirLLVMCConvAMDGPU_HS
Definition LLVM.h:175
@ MlirLLVMCConvPreserveMost
Definition LLVM.h:143
@ MlirLLVMCConvX86_ThisCall
Definition LLVM.h:156
@ MlirLLVMCConvPTX_Kernel
Definition LLVM.h:157
@ MlirLLVMCConvAMDGPU_KERNEL
Definition LLVM.h:173
@ MlirLLVMCConvCFGuard_Check
Definition LLVM.h:148
@ MlirLLVMCConvAMDGPU_ES
Definition LLVM.h:178
@ MlirLLVMCConvSPIR_FUNC
Definition LLVM.h:159
@ MlirLLVMCConvAMDGPU_LS
Definition LLVM.h:177
@ MlirLLVMCConvDUMMY_HHVM_C
Definition LLVM.h:166
@ MlirLLVMCConvCold
Definition LLVM.h:139
@ MlirLLVMCConvWin64
Definition LLVM.h:163
@ MlirLLVMCConvX86_INTR
Definition LLVM.h:167
@ MlirLLVMCConvAnyReg
Definition LLVM.h:142
@ MlirLLVMCConvDUMMY_HHVM
Definition LLVM.h:165
@ MlirLLVMCConvTail
Definition LLVM.h:147
@ MlirLLVMCConvCXX_FAST_TLS
Definition LLVM.h:146
@ MlirLLVMCConvAVR_INTR
Definition LLVM.h:168
@ MlirLLVMCConvSwift
Definition LLVM.h:145
@ MlirLLVMCConvPreserveAll
Definition LLVM.h:144
@ MlirLLVMCConvFast
Definition LLVM.h:138
@ MlirLLVMCConvC
Definition LLVM.h:137
@ MlirLLVMCConvAMDGPU_Gfx
Definition LLVM.h:182
@ MlirLLVMCConvX86_RegCall
Definition LLVM.h:174
@ MlirLLVMCConvAMDGPU_VS
Definition LLVM.h:170
@ MlirLLVMCConvAArch64_VectorCall
Definition LLVM.h:179
@ MlirLLVMCConvAMDGPU_CS
Definition LLVM.h:172
@ MlirLLVMCConvGHC
Definition LLVM.h:140
@ MlirLLVMCConvAArch64_SVE_VectorCall
Definition LLVM.h:180
@ MlirLLVMCConvX86_StdCall
Definition LLVM.h:150
@ MlirLLVMCConvAMDGPU_GS
Definition LLVM.h:171
@ MlirLLVMCConvMSP430_INTR
Definition LLVM.h:155
@ MlirLLVMCConvM68k_INTR
Definition LLVM.h:183
@ MlirLLVMCConvARM_AAPCS
Definition LLVM.h:153
@ MlirLLVMCConvAVR_BUILTIN
Definition LLVM.h:169
@ MlirLLVMCConvX86_64_SysV
Definition LLVM.h:162
@ MlirLLVMCConvSPIR_KERNEL
Definition LLVM.h:160
@ MlirLLVMCConvSwiftTail
Definition LLVM.h:149
@ MlirLLVMCConvIntel_OCL_BI
Definition LLVM.h:161
@ MlirLLVMCConvARM_APCS
Definition LLVM.h:152
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf(MlirAttribute recId)
Creates a self-referencing LLVM DISubprogramAttr attribute.
Definition LLVM.cpp:403
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMComdatAttrGetName(void)
Definition LLVM.cpp:303
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeLiteralGet(MlirContext ctx, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
Creates an LLVM literal (unnamed) struct type.
Definition LLVM.cpp:126
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIImportedEntityAttrGetName(void)
Definition LLVM.cpp:501
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDINullTypeAttrGetName(void)
Definition LLVM.cpp:204
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMCConvAttrGetName(void)
Definition LLVM.cpp:297
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 LLVM.cpp:321
MlirLLVMDIEmissionKind
Definition LLVM.h:326
@ MlirLLVMDIEmissionKindLineTablesOnly
Definition LLVM.h:329
@ MlirLLVMDIEmissionKindFull
Definition LLVM.h:328
@ MlirLLVMDIEmissionKindNone
Definition LLVM.h:327
@ MlirLLVMDIEmissionKindDebugDirectivesOnly
Definition LLVM.h:330
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, int64_t flags, MlirAttribute extraData)
Creates a LLVM DIDerivedType attribute.
Definition LLVM.cpp:254
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIDerivedTypeAttrGetBaseType(MlirAttribute diDerivedType)
Gets the base type from a LLVM DIDerivedType attribute.
Definition LLVM.cpp:289
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIAnnotationAttrGet(MlirContext ctx, MlirAttribute name, MlirAttribute value)
Creates a LLVM DIAnnotation attribute.
Definition LLVM.cpp:505
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIExpressionElemAttrGetName(void)
Definition LLVM.cpp:181
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 LLVM.cpp:487
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDILexicalBlockAttrGet(MlirContext ctx, MlirAttribute scope, MlirAttribute file, unsigned int line, unsigned int column)
Creates a LLVM DILexicalBlock attribute.
Definition LLVM.cpp:345
MLIR_CAPI_EXPORTED bool mlirTypeIsALLVMStructType(MlirType type)
Returns true if the type is an LLVM dialect struct type.
Definition LLVM.cpp:90
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIExpressionElemAttrGet(MlirContext ctx, unsigned int opcode, intptr_t nArguments, uint64_t const *arguments)
Creates a LLVM DIExpressionElem attribute.
Definition LLVM.cpp:173
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetCompileUnit(MlirAttribute diSubprogram)
Gets the compile unit from this DISubprogram.
Definition LLVM.cpp:453
MLIR_CAPI_EXPORTED MlirType mlirLLVMStructTypeLiteralGetChecked(MlirLocation loc, intptr_t nFieldTypes, MlirType const *fieldTypes, bool isPacked)
Creates an LLVM literal (unnamed) struct type if possible.
Definition LLVM.cpp:135
MlirLLVMTypeEncoding
Definition LLVM.h:247
@ MlirLLVMTypeEncodingComplexFloat
Definition LLVM.h:250
@ MlirLLVMTypeEncodingDecimalFloat
Definition LLVM.h:262
@ MlirLLVMTypeEncodingLoUser
Definition LLVM.h:266
@ MlirLLVMTypeEncodingUnsigned
Definition LLVM.h:254
@ MlirLLVMTypeEncodingSignedFixed
Definition LLVM.h:260
@ MlirLLVMTypeEncodingASCII
Definition LLVM.h:265
@ MlirLLVMTypeEncodingUTF
Definition LLVM.h:263
@ MlirLLVMTypeEncodingBoolean
Definition LLVM.h:249
@ MlirLLVMTypeEncodingPackedDecimal
Definition LLVM.h:257
@ MlirLLVMTypeEncodingHiUser
Definition LLVM.h:267
@ MlirLLVMTypeEncodingAddress
Definition LLVM.h:248
@ MlirLLVMTypeEncodingImaginaryFloat
Definition LLVM.h:256
@ MlirLLVMTypeEncodingUnsignedChar
Definition LLVM.h:255
@ MlirLLVMTypeEncodingUCS
Definition LLVM.h:264
@ MlirLLVMTypeEncodingNumericString
Definition LLVM.h:258
@ MlirLLVMTypeEncodingSignedChar
Definition LLVM.h:253
@ MlirLLVMTypeEncodingEdited
Definition LLVM.h:259
@ MlirLLVMTypeEncodingUnsignedFixed
Definition LLVM.h:261
@ MlirLLVMTypeEncodingSigned
Definition LLVM.h:252
@ MlirLLVMTypeEncodingFloatT
Definition LLVM.h:251
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDINullTypeAttrGet(MlirContext ctx)
Creates a LLVM DINullType attribute.
Definition LLVM.cpp:200
MLIR_CAPI_EXPORTED unsigned int mlirLLVMDISubprogramAttrGetLine(MlirAttribute diSubprogram)
Gets the line from this DISubprogramAttr.
Definition LLVM.cpp:444
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDIBasicTypeAttrGetName(void)
Definition LLVM.cpp:217
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGetType(MlirAttribute diSubprogram)
Gets the type from this DISubprogramAttr.
Definition LLVM.cpp:461
MLIR_CAPI_EXPORTED MlirType mlirLLVMFunctionTypeGetReturnType(MlirType type)
Returns the return type of the function type.
Definition LLVM.cpp:86
MLIR_CAPI_EXPORTED unsigned mlirLLVMPointerTypeGetAddressSpace(MlirType pointerType)
Returns address space of llvm.ptr.
Definition LLVM.cpp:42
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMDILexicalBlockFileAttrGetName(void)
Definition LLVM.cpp:368
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 LLVM.cpp:272
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 LLVM.cpp:465
MLIR_CAPI_EXPORTED MlirStringRef mlirLLVMVoidTypeGetName(void)
Definition LLVM.cpp:50
#define MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Name, Namespace)
Definition IR.h:215
#define MLIR_CAPI_EXPORTED
Definition Support.h:46
The OpAsmOpInterface, see OpAsmInterface.td for more details.
Definition CallGraph.h:229
A logical result value, essentially a boolean with named states.
Definition Support.h:118
A pointer to a sized fragment of a string, not necessarily null-terminated.
Definition Support.h:75