Skip to content

Commit 1d89942

Browse files
committed
[MLIR][LLVMIR] Add flags to DIDerivedTypeAttr
1 parent addd14c commit 1d89942

File tree

6 files changed

+11
-8
lines changed

6 files changed

+11
-8
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompositeTypeAttrGet(
265265
/// and non-negative values indicate a value present.
266266
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIDerivedTypeAttrGet(
267267
MlirContext ctx, unsigned int tag, MlirAttribute name,
268-
MlirAttribute baseType, uint64_t sizeInBits, uint32_t alignInBits,
268+
MlirAttribute baseType, int64_t flags, uint64_t sizeInBits, uint32_t alignInBits,
269269
uint64_t offsetInBits, int64_t dwarfAddressSpace, MlirAttribute extraData);
270270

271271
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIStringTypeAttrGet(

mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ def LLVM_DIDerivedTypeAttr : LLVM_Attr<"DIDerivedType", "di_derived_type",
474474
/*traits=*/[], "DITypeAttr"> {
475475
let parameters = (ins
476476
LLVM_DITagParameter:$tag,
477+
"DIFlags":$flags,
477478
OptionalParameter<"StringAttr">:$name,
478479
OptionalParameter<"DITypeAttr">:$baseType,
479480
OptionalParameter<"uint64_t">:$sizeInBits,

mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -734,8 +734,8 @@ def LLVM_DbgAssignOp : LLVM_DbgIntrOp<"dbg.assign", "value"> {
734734
DefaultValuedAttr<LLVM_DIExpressionAttr, "{}">:$addressExpr
735735
);
736736
let assemblyFormat = [{
737-
qualified($varInfo) (qualified($locationExpr)^)? qualified($assignId)
738-
(qualified($addressExpr)^)? `=` $value `,` $address `:` qualified(type($value)) `,` qualified(type($address)) attr-dict
737+
qualified($varInfo) qualified($locationExpr) qualified($assignId)
738+
qualified($addressExpr) `=` $value `,` $address `:` qualified(type($value)) `,` qualified(type($address)) attr-dict
739739
}];
740740
}
741741

mlir/lib/CAPI/Dialect/LLVM.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,13 +207,13 @@ MlirAttribute mlirLLVMDICompositeTypeAttrGet(
207207

208208
MlirAttribute mlirLLVMDIDerivedTypeAttrGet(
209209
MlirContext ctx, unsigned int tag, MlirAttribute name,
210-
MlirAttribute baseType, uint64_t sizeInBits, uint32_t alignInBits,
210+
MlirAttribute baseType, int64_t flags, uint64_t sizeInBits, uint32_t alignInBits,
211211
uint64_t offsetInBits, int64_t dwarfAddressSpace, MlirAttribute extraData) {
212212
std::optional<unsigned> addressSpace = std::nullopt;
213213
if (dwarfAddressSpace >= 0)
214214
addressSpace = (unsigned)dwarfAddressSpace;
215215
return wrap(DIDerivedTypeAttr::get(
216-
unwrap(ctx), tag, cast<StringAttr>(unwrap(name)),
216+
unwrap(ctx), tag, DIFlags(flags), cast<StringAttr>(unwrap(name)),
217217
cast<DITypeAttr>(unwrap(baseType)), sizeInBits, alignInBits, offsetInBits,
218218
addressSpace, cast<DINodeAttr>(unwrap(extraData))));
219219
}

mlir/lib/Target/LLVMIR/DebugImporter.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,11 @@ DIDerivedTypeAttr DebugImporter::translateImpl(llvm::DIDerivedType *node) {
102102
return nullptr;
103103
DINodeAttr extraData =
104104
translate(dyn_cast_or_null<llvm::DINode>(node->getExtraData()));
105+
std::optional<DIFlags> flags = symbolizeDIFlags(node->getFlags());
105106
return DIDerivedTypeAttr::get(
106-
context, node->getTag(), getStringAttrOrNull(node->getRawName()),
107-
baseType, node->getSizeInBits(), node->getAlignInBits(),
107+
context, node->getTag(), flags.value_or(DIFlags::Zero),
108+
getStringAttrOrNull(node->getRawName()), baseType,
109+
node->getSizeInBits(), node->getAlignInBits(),
108110
node->getOffsetInBits(), node->getDWARFAddressSpace(), extraData);
109111
}
110112

mlir/lib/Target/LLVMIR/DebugTranslation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ llvm::DIDerivedType *DebugTranslation::translateImpl(DIDerivedTypeAttr attr) {
201201
/*Scope=*/nullptr, translate(attr.getBaseType()), attr.getSizeInBits(),
202202
attr.getAlignInBits(), attr.getOffsetInBits(),
203203
attr.getDwarfAddressSpace(), /*PtrAuthData=*/std::nullopt,
204-
/*Flags=*/llvm::DINode::FlagZero, translate(attr.getExtraData()));
204+
static_cast<llvm::DINode::DIFlags>(attr.getFlags()), translate(attr.getExtraData()));
205205
}
206206

207207
llvm::DIStringType *DebugTranslation::translateImpl(DIStringTypeAttr attr) {

0 commit comments

Comments
 (0)