Skip to content

Commit 2d17c4f

Browse files
committed
better
1 parent 5fd1b22 commit 2d17c4f

File tree

3 files changed

+127
-25
lines changed

3 files changed

+127
-25
lines changed

mlir/include/mlir-c/Dialect/LLVM.h

Lines changed: 113 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212

1313
#include "mlir-c/IR.h"
1414
#include "mlir-c/Support.h"
15-
#include "llvm-c/Comdat.h"
16-
#include "llvm-c/Core.h"
17-
#include "llvm-c/DebugInfo.h"
1815

1916
#ifdef __cplusplus
2017
extern "C" {
@@ -102,17 +99,92 @@ MLIR_CAPI_EXPORTED MlirLogicalResult
10299
mlirLLVMStructTypeSetBody(MlirType structType, intptr_t nFieldTypes,
103100
MlirType const *fieldTypes, bool isPacked);
104101

102+
enum MlirLLVMCConv {
103+
MlirLLVMCConvC = 0,
104+
MlirLLVMCConvFast = 8,
105+
MlirLLVMCConvCold = 9,
106+
MlirLLVMCConvGHC = 10,
107+
MlirLLVMCConvHiPE = 11,
108+
MlirLLVMCConvAnyReg = 13,
109+
MlirLLVMCConvPreserveMost = 14,
110+
MlirLLVMCConvPreserveAll = 15,
111+
MlirLLVMCConvSwift = 16,
112+
MlirLLVMCConvCXX_FAST_TLS = 17,
113+
MlirLLVMCConvTail = 18,
114+
MlirLLVMCConvCFGuard_Check = 19,
115+
MlirLLVMCConvSwiftTail = 20,
116+
MlirLLVMCConvX86_StdCall = 64,
117+
MlirLLVMCConvX86_FastCall = 65,
118+
MlirLLVMCConvARM_APCS = 66,
119+
MlirLLVMCConvARM_AAPCS = 67,
120+
MlirLLVMCConvARM_AAPCS_VFP = 68,
121+
MlirLLVMCConvMSP430_INTR = 69,
122+
MlirLLVMCConvX86_ThisCall = 70,
123+
MlirLLVMCConvPTX_Kernel = 71,
124+
MlirLLVMCConvPTX_Device = 72,
125+
MlirLLVMCConvSPIR_FUNC = 75,
126+
MlirLLVMCConvSPIR_KERNEL = 76,
127+
MlirLLVMCConvIntel_OCL_BI = 77,
128+
MlirLLVMCConvX86_64_SysV = 78,
129+
MlirLLVMCConvWin64 = 79,
130+
MlirLLVMCConvX86_VectorCall = 80,
131+
MlirLLVMCConvDUMMY_HHVM = 81,
132+
MlirLLVMCConvDUMMY_HHVM_C = 82,
133+
MlirLLVMCConvX86_INTR = 83,
134+
MlirLLVMCConvAVR_INTR = 84,
135+
MlirLLVMCConvAVR_BUILTIN = 86,
136+
MlirLLVMCConvAMDGPU_VS = 87,
137+
MlirLLVMCConvAMDGPU_GS = 88,
138+
MlirLLVMCConvAMDGPU_CS = 90,
139+
MlirLLVMCConvAMDGPU_KERNEL = 91,
140+
MlirLLVMCConvX86_RegCall = 92,
141+
MlirLLVMCConvAMDGPU_HS = 93,
142+
MlirLLVMCConvMSP430_BUILTIN = 94,
143+
MlirLLVMCConvAMDGPU_LS = 95,
144+
MlirLLVMCConvAMDGPU_ES = 96,
145+
MlirLLVMCConvAArch64_VectorCall = 97,
146+
MlirLLVMCConvAArch64_SVE_VectorCall = 98,
147+
MlirLLVMCConvWASM_EmscriptenInvoke = 99,
148+
MlirLLVMCConvAMDGPU_Gfx = 100,
149+
MlirLLVMCConvM68k_INTR = 101,
150+
};
151+
typedef enum MlirLLVMCConv MlirLLVMCConv;
152+
105153
/// Creates a LLVM CConv attribute.
106154
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMCConvAttrGet(MlirContext ctx,
107-
LLVMCallConv cconv);
155+
MlirLLVMCConv cconv);
156+
157+
enum MlirLLVMComdat {
158+
MlirLLVMComdatAny = 0,
159+
MlirLLVMComdatExactMatch = 1,
160+
MlirLLVMComdatLargest = 2,
161+
MlirLLVMComdatNoDeduplicate = 3,
162+
MlirLLVMComdatSameSize = 4,
163+
};
164+
typedef enum MlirLLVMComdat MlirLLVMComdat;
108165

109166
/// Creates a LLVM Comdat attribute.
110-
MLIR_CAPI_EXPORTED MlirAttribute
111-
mlirLLVMComdatAttrGet(MlirContext ctx, LLVMComdatSelectionKind comdat);
167+
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMComdatAttrGet(MlirContext ctx,
168+
MlirLLVMComdat comdat);
169+
170+
enum MlirLLVMLinkage {
171+
MlirLLVMLinkagePrivate = 0,
172+
MlirLLVMLinkageInternal = 1,
173+
MlirLLVMLinkageAvailableExternally = 2,
174+
MlirLLVMLinkageLinkonce = 3,
175+
MlirLLVMLinkageWeak = 4,
176+
MlirLLVMLinkageCommon = 5,
177+
MlirLLVMLinkageAppending = 6,
178+
MlirLLVMLinkageExternWeak = 7,
179+
MlirLLVMLinkageLinkonceODR = 8,
180+
MlirLLVMLinkageWeakODR = 9,
181+
MlirLLVMLinkageExternal = 10,
182+
};
183+
typedef enum MlirLLVMLinkage MlirLLVMLinkage;
112184

113185
/// Creates a LLVM Linkage attribute.
114186
MLIR_CAPI_EXPORTED MlirAttribute
115-
mlirLLVMLinkageAttrGet(MlirContext ctx, LLVMLinkage linkage);
187+
mlirLLVMLinkageAttrGet(MlirContext ctx, MlirLLVMLinkage linkage);
116188

117189
/// Creates a LLVM DINullType attribute.
118190
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDINullTypeAttrGet(MlirContext ctx);
@@ -126,10 +198,34 @@ mlirLLVMDIExpressionElemAttrGet(MlirContext ctx, unsigned int opcode,
126198
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIExpressionAttrGet(
127199
MlirContext ctx, intptr_t nOperations, MlirAttribute const *operations);
128200

201+
enum MlirLLVMTypeEncoding {
202+
MlirLLVMTypeEncodingAddress = 0x1,
203+
MlirLLVMTypeEncodingBoolean = 0x2,
204+
MlirLLVMTypeEncodingComplexFloat = 0x31,
205+
MlirLLVMTypeEncodingFloatT = 0x4,
206+
MlirLLVMTypeEncodingSigned = 0x5,
207+
MlirLLVMTypeEncodingSignedChar = 0x6,
208+
MlirLLVMTypeEncodingUnsigned = 0x7,
209+
MlirLLVMTypeEncodingUnsignedChar = 0x08,
210+
MlirLLVMTypeEncodingImaginaryFloat = 0x09,
211+
MlirLLVMTypeEncodingPackedDecimal = 0x0a,
212+
MlirLLVMTypeEncodingNumericString = 0x0b,
213+
MlirLLVMTypeEncodingEdited = 0x0c,
214+
MlirLLVMTypeEncodingSignedFixed = 0x0d,
215+
MlirLLVMTypeEncodingUnsignedFixed = 0x0e,
216+
MlirLLVMTypeEncodingDecimalFloat = 0x0f,
217+
MlirLLVMTypeEncodingUTF = 0x10,
218+
MlirLLVMTypeEncodingUCS = 0x11,
219+
MlirLLVMTypeEncodingASCII = 0x12,
220+
MlirLLVMTypeEncodingLoUser = 0x80,
221+
MlirLLVMTypeEncodingHiUser = 0xff,
222+
};
223+
typedef enum MlirLLVMTypeEncoding MlirLLVMTypeEncoding;
224+
129225
/// Creates a LLVM DIBasicType attribute.
130226
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIBasicTypeAttrGet(
131227
MlirContext ctx, unsigned int tag, MlirAttribute name, uint64_t sizeInBits,
132-
LLVMDWARFTypeEncoding encoding);
228+
MlirLLVMTypeEncoding encoding);
133229

134230
/// Creates a LLVM DICompositeType attribute.
135231
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompositeTypeAttrGet(
@@ -153,11 +249,19 @@ MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFileAttrGet(MlirContext ctx,
153249
MlirAttribute name,
154250
MlirAttribute directory);
155251

252+
enum MlirLLVMDIEmissionKind {
253+
MlirLLVMDIEmissionKindNone = 0,
254+
MlirLLVMDIEmissionKindFull = 1,
255+
MlirLLVMDIEmissionKindLineTablesOnly = 2,
256+
MlirLLVMDIEmissionKindDebugDirectivesOnly = 3,
257+
};
258+
typedef enum MlirLLVMDIEmissionKind MlirLLVMDIEmissionKind;
259+
156260
/// Creates a LLVM DICompileUnit attribute.
157261
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompileUnitAttrGet(
158262
MlirContext ctx, MlirAttribute id, unsigned int sourceLanguage,
159263
MlirAttribute file, MlirAttribute producer, bool isOptimized,
160-
LLVMDWARFEmissionKind emissionKind);
264+
MlirLLVMDIEmissionKind emissionKind);
161265

162266
/// Creates a LLVM DIFlags attribute.
163267
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIFlagsAttrGet(MlirContext ctx,

mlir/lib/CAPI/Dialect/LLVM.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ MlirAttribute mlirLLVMDINullTypeAttrGet(MlirContext ctx) {
145145
MlirAttribute mlirLLVMDIBasicTypeAttrGet(MlirContext ctx, unsigned int tag,
146146
MlirAttribute name,
147147
uint64_t sizeInBits,
148-
LLVMDWARFTypeEncoding encoding) {
148+
MlirLLVMTypeEncoding encoding) {
149149

150150
return wrap(DIBasicTypeAttr::get(
151151
unwrap(ctx), tag, cast<StringAttr>(unwrap(name)), sizeInBits, encoding));
@@ -185,16 +185,15 @@ mlirLLVMDIDerivedTypeAttrGetBaseType(MlirAttribute diDerivedType) {
185185
return wrap(cast<DIDerivedTypeAttr>(unwrap(diDerivedType)).getBaseType());
186186
}
187187

188-
MlirAttribute mlirLLVMCConvAttrGet(MlirContext ctx, LLVMCallConv cconv) {
188+
MlirAttribute mlirLLVMCConvAttrGet(MlirContext ctx, MlirLLVMCConv cconv) {
189189
return wrap(CConvAttr::get(unwrap(ctx), CConv(cconv)));
190190
}
191191

192-
MlirAttribute mlirLLVMComdatAttrGet(MlirContext ctx,
193-
LLVMComdatSelectionKind comdat) {
192+
MlirAttribute mlirLLVMComdatAttrGet(MlirContext ctx, MlirLLVMComdat comdat) {
194193
return wrap(ComdatAttr::get(unwrap(ctx), comdat::Comdat(comdat)));
195194
}
196195

197-
MlirAttribute mlirLLVMLinkageAttrGet(MlirContext ctx, LLVMLinkage linkage) {
196+
MlirAttribute mlirLLVMLinkageAttrGet(MlirContext ctx, MlirLLVMLinkage linkage) {
198197
return wrap(LinkageAttr::get(unwrap(ctx), linkage::Linkage(linkage)));
199198
}
200199

@@ -204,12 +203,11 @@ MlirAttribute mlirLLVMDIFileAttrGet(MlirContext ctx, MlirAttribute name,
204203
cast<StringAttr>(unwrap(directory))));
205204
}
206205

207-
MlirAttribute mlirLLVMDICompileUnitAttrGet(MlirContext ctx, MlirAttribute id,
208-
unsigned int sourceLanguage,
209-
MlirAttribute file,
210-
MlirAttribute producer,
211-
bool isOptimized,
212-
LLVMDWARFEmissionKind emissionKind) {
206+
MlirAttribute
207+
mlirLLVMDICompileUnitAttrGet(MlirContext ctx, MlirAttribute id,
208+
unsigned int sourceLanguage, MlirAttribute file,
209+
MlirAttribute producer, bool isOptimized,
210+
MlirLLVMDIEmissionKind emissionKind) {
213211
return wrap(DICompileUnitAttr::get(
214212
unwrap(ctx), cast<DistinctAttr>(unwrap(id)), sourceLanguage,
215213
cast<DIFileAttr>(unwrap(file)), cast<StringAttr>(unwrap(producer)),

mlir/test/CAPI/llvm.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,11 @@ static void testLLVMAttributes(MlirContext ctx) {
233233
fprintf(stderr, "testLLVMAttributes\n");
234234

235235
// CHECK: #llvm.linkage<internal>
236-
mlirAttributeDump(mlirLLVMLinkageAttrGet(ctx, LLVMInternalLinkage));
236+
mlirAttributeDump(mlirLLVMLinkageAttrGet(ctx, MlirLLVMLinkageInternal));
237237
// CHECK: #llvm.cconv<ccc>
238-
mlirAttributeDump(mlirLLVMCConvAttrGet(ctx, LLVMCCallConv));
238+
mlirAttributeDump(mlirLLVMCConvAttrGet(ctx, MlirLLVMCConvC));
239239
// CHECK: #llvm<comdat any>
240-
mlirAttributeDump(mlirLLVMComdatAttrGet(ctx, LLVMAnyComdatSelectionKind));
240+
mlirAttributeDump(mlirLLVMComdatAttrGet(ctx, MlirLLVMComdatAny));
241241
}
242242

243243
// CHECK-LABEL: testDebugInfoAttributes
@@ -256,7 +256,7 @@ static void testDebugInfoAttributes(MlirContext ctx) {
256256
// CHECK: #llvm.di_basic_type<tag = DW_TAG_null, name = "foo", sizeInBits =
257257
// CHECK-SAME: 64, encoding = DW_ATE_signed>
258258
MlirAttribute di_type =
259-
mlirLLVMDIBasicTypeAttrGet(ctx, 0, foo, 64, LLVMDWARFSignedTypeEncoding);
259+
mlirLLVMDIBasicTypeAttrGet(ctx, 0, foo, 64, MlirLLVMTypeEncodingSigned);
260260
mlirAttributeDump(di_type);
261261

262262
MlirAttribute file = mlirLLVMDIFileAttrGet(ctx, foo, bar);
@@ -266,7 +266,7 @@ static void testDebugInfoAttributes(MlirContext ctx) {
266266

267267
MlirAttribute compile_unit =
268268
mlirLLVMDICompileUnitAttrGet(ctx, id, LLVMDWARFSourceLanguageC99, file,
269-
foo, false, LLVMDWARFEmissionFull);
269+
foo, false, MlirLLVMDIEmissionKindFull);
270270

271271
// CHECK: #llvm.di_compile_unit<{{.*}}>
272272
mlirAttributeDump(compile_unit);

0 commit comments

Comments
 (0)