#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"
usingnamespacemlir;
usingnamespacemlir::LLVM;
MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(LLVM, llvm, LLVMDialect)
MlirType mlirLLVMPointerTypeGet(MlirContext ctx, unsigned addressSpace) { … }
bool mlirTypeIsALLVMPointerType(MlirType type) { … }
unsigned mlirLLVMPointerTypeGetAddressSpace(MlirType pointerType) { … }
MlirType mlirLLVMVoidTypeGet(MlirContext ctx) { … }
MlirType mlirLLVMArrayTypeGet(MlirType elementType, unsigned numElements) { … }
MlirType mlirLLVMFunctionTypeGet(MlirType resultType, intptr_t nArgumentTypes,
MlirType const *argumentTypes, bool isVarArg) { … }
bool mlirTypeIsALLVMStructType(MlirType type) { … }
bool mlirLLVMStructTypeIsLiteral(MlirType type) { … }
intptr_t mlirLLVMStructTypeGetNumElementTypes(MlirType type) { … }
MlirType mlirLLVMStructTypeGetElementType(MlirType type, intptr_t position) { … }
bool mlirLLVMStructTypeIsPacked(MlirType type) { … }
MlirStringRef mlirLLVMStructTypeGetIdentifier(MlirType type) { … }
bool mlirLLVMStructTypeIsOpaque(MlirType type) { … }
MlirType mlirLLVMStructTypeLiteralGet(MlirContext ctx, intptr_t nFieldTypes,
MlirType const *fieldTypes,
bool isPacked) { … }
MlirType mlirLLVMStructTypeLiteralGetChecked(MlirLocation loc,
intptr_t nFieldTypes,
MlirType const *fieldTypes,
bool isPacked) { … }
MlirType mlirLLVMStructTypeOpaqueGet(MlirContext ctx, MlirStringRef name) { … }
MlirType mlirLLVMStructTypeIdentifiedGet(MlirContext ctx, MlirStringRef name) { … }
MlirType mlirLLVMStructTypeIdentifiedNewGet(MlirContext ctx, MlirStringRef name,
intptr_t nFieldTypes,
MlirType const *fieldTypes,
bool isPacked) { … }
MlirLogicalResult mlirLLVMStructTypeSetBody(MlirType structType,
intptr_t nFieldTypes,
MlirType const *fieldTypes,
bool isPacked) { … }
MlirAttribute mlirLLVMDIExpressionElemAttrGet(MlirContext ctx,
unsigned int opcode,
intptr_t nArguments,
uint64_t const *arguments) { … }
MlirAttribute mlirLLVMDIExpressionAttrGet(MlirContext ctx, intptr_t nOperations,
MlirAttribute const *operations) { … }
MlirAttribute mlirLLVMDINullTypeAttrGet(MlirContext ctx) { … }
MlirAttribute mlirLLVMDIBasicTypeAttrGet(MlirContext ctx, unsigned int tag,
MlirAttribute name,
uint64_t sizeInBits,
MlirLLVMTypeEncoding encoding) { … }
MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf(MlirAttribute recId) { … }
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) { … }
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) { … }
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) { … }
MlirAttribute mlirLLVMCConvAttrGet(MlirContext ctx, MlirLLVMCConv cconv) { … }
MlirAttribute mlirLLVMComdatAttrGet(MlirContext ctx, MlirLLVMComdat comdat) { … }
MlirAttribute mlirLLVMLinkageAttrGet(MlirContext ctx, MlirLLVMLinkage linkage) { … }
MlirAttribute mlirLLVMDIFileAttrGet(MlirContext ctx, MlirAttribute name,
MlirAttribute directory) { … }
MlirAttribute
mlirLLVMDICompileUnitAttrGet(MlirContext ctx, MlirAttribute id,
unsigned int sourceLanguage, MlirAttribute file,
MlirAttribute producer, bool isOptimized,
MlirLLVMDIEmissionKind emissionKind,
MlirLLVMDINameTableKind nameTableKind) { … }
MlirAttribute mlirLLVMDIFlagsAttrGet(MlirContext ctx, uint64_t value) { … }
MlirAttribute mlirLLVMDILexicalBlockAttrGet(MlirContext ctx,
MlirAttribute scope,
MlirAttribute file,
unsigned int line,
unsigned int column) { … }
MlirAttribute mlirLLVMDILexicalBlockFileAttrGet(MlirContext ctx,
MlirAttribute scope,
MlirAttribute file,
unsigned int discriminator) { … }
MlirAttribute mlirLLVMDILocalVariableAttrGet(
MlirContext ctx, MlirAttribute scope, MlirAttribute name,
MlirAttribute diFile, unsigned int line, unsigned int arg,
unsigned int alignInBits, MlirAttribute diType, int64_t flags) { … }
MlirAttribute mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx,
unsigned int callingConvention,
intptr_t nTypes,
MlirAttribute const *types) { … }
MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf(MlirAttribute recId) { … }
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) { … }
MlirAttribute mlirLLVMDISubprogramAttrGetScope(MlirAttribute diSubprogram) { … }
unsigned int mlirLLVMDISubprogramAttrGetLine(MlirAttribute diSubprogram) { … }
unsigned int mlirLLVMDISubprogramAttrGetScopeLine(MlirAttribute diSubprogram) { … }
MlirAttribute
mlirLLVMDISubprogramAttrGetCompileUnit(MlirAttribute diSubprogram) { … }
MlirAttribute mlirLLVMDISubprogramAttrGetFile(MlirAttribute diSubprogram) { … }
MlirAttribute mlirLLVMDISubprogramAttrGetType(MlirAttribute diSubprogram) { … }
MlirAttribute mlirLLVMDIModuleAttrGet(MlirContext ctx, MlirAttribute file,
MlirAttribute scope, MlirAttribute name,
MlirAttribute configMacros,
MlirAttribute includePath,
MlirAttribute apinotes, unsigned int line,
bool isDecl) { … }
MlirAttribute mlirLLVMDIModuleAttrGetScope(MlirAttribute diModule) { … }
MlirAttribute mlirLLVMDIImportedEntityAttrGet(
MlirContext ctx, unsigned int tag, MlirAttribute scope,
MlirAttribute entity, MlirAttribute file, unsigned int line,
MlirAttribute name, intptr_t nElements, MlirAttribute const *elements) { … }