Skip to content

Commit

Permalink
Address comments.
Browse files Browse the repository at this point in the history
  • Loading branch information
gysit committed Aug 30, 2024
1 parent c6ed8b2 commit 988d78e
Show file tree
Hide file tree
Showing 12 changed files with 104 additions and 92 deletions.
10 changes: 5 additions & 5 deletions flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,8 @@ mlir::LLVM::DITypeAttr DebugTypeGenerator::convertBoxedSequenceType(
elements.push_back(subrangeTy);
}
return mlir::LLVM::DICompositeTypeAttr::get(
context, llvm::dwarf::DW_TAG_array_type, /*recursive_id=*/{},
/*name=*/nullptr, /*file=*/nullptr, /*line=*/0, /*scope=*/nullptr, elemTy,
context, llvm::dwarf::DW_TAG_array_type, /*name=*/nullptr,
/*file=*/nullptr, /*line=*/0, /*scope=*/nullptr, elemTy,
mlir::LLVM::DIFlags::Zero, /*sizeInBits=*/0, /*alignInBits=*/0, elements,
dataLocation, /*rank=*/nullptr, allocated, associated);
}
Expand Down Expand Up @@ -188,7 +188,7 @@ mlir::LLVM::DITypeAttr DebugTypeGenerator::convertRecordType(
}

return mlir::LLVM::DICompositeTypeAttr::get(
context, llvm::dwarf::DW_TAG_structure_type, /*recursive_id=*/{},
context, llvm::dwarf::DW_TAG_structure_type,
mlir::StringAttr::get(context, result.second.name), fileAttr, line, scope,
/*baseType=*/nullptr, mlir::LLVM::DIFlags::Zero, offset * 8,
/*alignInBits=*/0, elements, /*dataLocation=*/nullptr, /*rank=*/nullptr,
Expand Down Expand Up @@ -236,8 +236,8 @@ mlir::LLVM::DITypeAttr DebugTypeGenerator::convertSequenceType(
// have been set to some valid default values.

return mlir::LLVM::DICompositeTypeAttr::get(
context, llvm::dwarf::DW_TAG_array_type, /*recursive_id=*/{},
/*name=*/nullptr, /*file=*/nullptr, /*line=*/0, /*scope=*/nullptr, elemTy,
context, llvm::dwarf::DW_TAG_array_type, /*name=*/nullptr,
/*file=*/nullptr, /*line=*/0, /*scope=*/nullptr, elemTy,
mlir::LLVM::DIFlags::Zero, /*sizeInBits=*/0, /*alignInBits=*/0, elements,
/*dataLocation=*/nullptr, /*rank=*/nullptr, /*allocated=*/nullptr,
/*associated=*/nullptr);
Expand Down
10 changes: 5 additions & 5 deletions mlir/include/mlir-c/Dialect/LLVM.h
Original file line number Diff line number Diff line change
Expand Up @@ -235,12 +235,12 @@ MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDIBasicTypeAttrGet(
MlirLLVMTypeEncoding encoding);

/// Creates a self-referencing LLVM DICompositeType attribute.
MlirAttribute mlirLLVMDICompositeTypeAttrGetSelfRec(MlirAttribute recId);
MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf(MlirAttribute recId);

/// Creates a LLVM DICompositeType attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDICompositeTypeAttrGet(
MlirContext ctx, unsigned int tag, MlirAttribute recId, MlirAttribute name,
MlirAttribute file, uint32_t line, MlirAttribute scope,
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,
Expand Down Expand Up @@ -315,11 +315,11 @@ MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDILocalVariableAttrGet(
unsigned int alignInBits, MlirAttribute diType, int64_t flags);

/// Creates a self-referencing LLVM DISubprogramAttr attribute.
MlirAttribute mlirLLVMDISubprogramAttrGetSelfRec(MlirAttribute recId);
MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf(MlirAttribute recId);

/// Creates a LLVM DISubprogramAttr attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirLLVMDISubprogramAttrGet(
MlirContext ctx, MlirAttribute id, MlirAttribute recId,
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,
Expand Down
47 changes: 30 additions & 17 deletions mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ def LLVM_DILanguageParameter : LLVM_DIParameter<
>;

def LLVM_DITagParameter : LLVM_DIParameter<
"tag", /*default=*/"", "Tag", /*errorCase=*/"llvm::dwarf::DW_TAG_invalid"
"tag", /*default=*/"0", "Tag", /*errorCase=*/"llvm::dwarf::DW_TAG_invalid"
>;

def LLVM_DIOperationEncodingParameter : LLVM_DIParameter<
Expand Down Expand Up @@ -375,14 +375,17 @@ def LLVM_DICompositeTypeAttr : LLVM_Attr<"DICompositeType", "di_composite_type",
[LLVM_DIRecursiveTypeAttrInterface],
"DITypeAttr"> {
let parameters = (ins
LLVM_DITagParameter:$tag,
// DIRecursiveTypeAttrInterface specific parameters.
OptionalParameter<"DistinctAttr">:$recId,
OptionalParameter<"bool">:$isRecSelf,
// DICompositeType specific parameters.
LLVM_DITagParameter:$tag,
OptionalParameter<"StringAttr">:$name,
OptionalParameter<"DIFileAttr">:$file,
OptionalParameter<"uint32_t">:$line,
OptionalParameter<"DIScopeAttr">:$scope,
OptionalParameter<"DITypeAttr">:$baseType,
OptionalParameter<"DIFlags", "DIFlags::Zero">:$flags,
OptionalParameter<"DIFlags">:$flags,
OptionalParameter<"uint64_t">:$sizeInBits,
OptionalParameter<"uint64_t">:$alignInBits,
OptionalArrayRefParameter<"DINodeAttr">:$elements,
Expand All @@ -391,14 +394,26 @@ def LLVM_DICompositeTypeAttr : LLVM_Attr<"DICompositeType", "di_composite_type",
OptionalParameter<"DIExpressionAttr">:$allocated,
OptionalParameter<"DIExpressionAttr">:$associated
);
let builders = [
AttrBuilder<(ins
"unsigned":$tag, "StringAttr":$name, "DIFileAttr":$file,
"uint32_t":$line, "DIScopeAttr":$scope, "DITypeAttr":$baseType,
"DIFlags":$flags, "uint64_t":$sizeInBits, "uint64_t":$alignInBits,
"ArrayRef<DINodeAttr>":$elements, "DIExpressionAttr":$dataLocation,
"DIExpressionAttr":$rank, "DIExpressionAttr":$allocated,
"DIExpressionAttr":$associated
), [{
return $_get($_ctxt, /*recId=*/nullptr, /*isRecSelf=*/nullptr,
tag, name, file, line, scope, baseType, flags, sizeInBits,
alignInBits, elements, dataLocation, rank, allocated,
associated);
}]>
];
let assemblyFormat = "`<` struct(params) `>`";
let extraClassDeclaration = [{
/// Requirements of DIRecursiveTypeAttrInterface.
/// @{

/// Get whether this attr describes a recursive self reference.
bool isRecSelf() { return getTag() == 0; }

/// Get a copy of this type attr but with the recursive ID set to `recId`.
DIRecursiveTypeAttrInterface withRecId(DistinctAttr recId);

Expand Down Expand Up @@ -557,8 +572,11 @@ def LLVM_DISubprogramAttr : LLVM_Attr<"DISubprogram", "di_subprogram",
[LLVM_DIRecursiveTypeAttrInterface],
"DIScopeAttr"> {
let parameters = (ins
OptionalParameter<"DistinctAttr">:$id,
// DIRecursiveTypeAttrInterface specific parameters.
OptionalParameter<"DistinctAttr">:$recId,
OptionalParameter<"bool">:$isRecSelf,
// DISubprogramAttr specific parameters.
OptionalParameter<"DistinctAttr">:$id,
OptionalParameter<"DICompileUnitAttr">:$compileUnit,
OptionalParameter<"DIScopeAttr">:$scope,
OptionalParameter<"StringAttr">:$name,
Expand All @@ -571,28 +589,23 @@ def LLVM_DISubprogramAttr : LLVM_Attr<"DISubprogram", "di_subprogram",
OptionalArrayRefParameter<"DINodeAttr">:$retainedNodes
);
let builders = [
AttrBuilderWithInferredContext<(ins
AttrBuilder<(ins
"DistinctAttr":$id, "DICompileUnitAttr":$compileUnit,
"DIScopeAttr":$scope, "StringRef":$name, "StringRef":$linkageName,
"DIScopeAttr":$scope, "StringAttr":$name, "StringAttr":$linkageName,
"DIFileAttr":$file, "unsigned":$line, "unsigned":$scopeLine,
"DISubprogramFlags":$subprogramFlags, "DISubroutineTypeAttr":$type,
"ArrayRef<DINodeAttr>":$retainedNodes
), [{
MLIRContext *ctx = file.getContext();
return $_get(ctx, id, /*recId=*/nullptr, compileUnit, scope,
StringAttr::get(ctx, name),
StringAttr::get(ctx, linkageName), file, line,
scopeLine, subprogramFlags, type, retainedNodes);
return $_get($_ctxt, /*recId=*/nullptr, /*isRecSelf=*/false, id, compileUnit,
scope, name, linkageName, file, line, scopeLine,
subprogramFlags, type, retainedNodes);
}]>
];
let assemblyFormat = "`<` struct(params) `>`";
let extraClassDeclaration = [{
/// Requirements of DIRecursiveTypeAttrInterface.
/// @{

/// Get whether this attr describes a recursive self reference.
bool isRecSelf() { return !getScope(); }

/// Get a copy of this type attr but with the recursive ID set to `recId`.
DIRecursiveTypeAttrInterface withRecId(DistinctAttr recId);

Expand Down
2 changes: 1 addition & 1 deletion mlir/include/mlir/Dialect/LLVMIR/LLVMInterfaces.td
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ def LLVM_DIRecursiveTypeAttrInterface
let methods = [
InterfaceMethod<[{
Get whether this attr describes a recursive self reference.
}], "bool", "isRecSelf", (ins)>,
}], "bool", "getIsRecSelf", (ins)>,
InterfaceMethod<[{
Get the recursive ID used for matching "rec-decl" with "rec-self".
If this attr instance is not recursive, return a null attribute.
Expand Down
16 changes: 8 additions & 8 deletions mlir/lib/CAPI/Dialect/LLVM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,14 @@ MlirAttribute mlirLLVMDIBasicTypeAttrGet(MlirContext ctx, unsigned int tag,
unwrap(ctx), tag, cast<StringAttr>(unwrap(name)), sizeInBits, encoding));
}

MlirAttribute mlirLLVMDICompositeTypeAttrGetSelfRec(MlirAttribute recId) {
MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf(MlirAttribute recId) {
return wrap(
DICompositeTypeAttr::getRecSelf(cast<DistinctAttr>(unwrap(recId))));
}

MlirAttribute mlirLLVMDICompositeTypeAttrGet(
MlirContext ctx, unsigned int tag, MlirAttribute recId, MlirAttribute name,
MlirAttribute file, uint32_t line, MlirAttribute scope,
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,
Expand All @@ -175,7 +175,7 @@ MlirAttribute mlirLLVMDICompositeTypeAttrGet(
elementsStorage.reserve(nElements);

return wrap(DICompositeTypeAttr::get(
unwrap(ctx), tag, cast<DistinctAttr>(unwrap(recId)),
unwrap(ctx), cast<DistinctAttr>(unwrap(recId)), isRecSelf, tag,
cast<StringAttr>(unwrap(name)), cast<DIFileAttr>(unwrap(file)), line,
cast<DIScopeAttr>(unwrap(scope)), cast<DITypeAttr>(unwrap(baseType)),
DIFlags(flags), sizeInBits, alignInBits,
Expand Down Expand Up @@ -294,21 +294,21 @@ MlirAttribute mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx,
[](Attribute a) { return cast<DITypeAttr>(a); })));
}

MlirAttribute mlirLLVMDISubprogramAttrGetSelfRec(MlirAttribute recId) {
MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf(MlirAttribute recId) {
return wrap(DISubprogramAttr::getRecSelf(cast<DistinctAttr>(unwrap(recId))));
}

MlirAttribute mlirLLVMDISubprogramAttrGet(
MlirContext ctx, MlirAttribute id, MlirAttribute recId,
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) {
SmallVector<Attribute> nodesStorage;
nodesStorage.reserve(nRetainedNodes);
return wrap(DISubprogramAttr::get(
unwrap(ctx), cast<DistinctAttr>(unwrap(id)),
cast<DistinctAttr>(unwrap(recId)),
unwrap(ctx), cast<DistinctAttr>(unwrap(recId)), isRecSelf,
cast<DistinctAttr>(unwrap(id)),
cast<DICompileUnitAttr>(unwrap(compileUnit)),
cast<DIScopeAttr>(unwrap(scope)), cast<StringAttr>(unwrap(name)),
cast<StringAttr>(unwrap(linkageName)), cast<DIFileAttr>(unwrap(file)),
Expand Down
23 changes: 12 additions & 11 deletions mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,16 +203,17 @@ void printExpressionArg(AsmPrinter &printer, uint64_t opcode,
DIRecursiveTypeAttrInterface
DICompositeTypeAttr::withRecId(DistinctAttr recId) {
return DICompositeTypeAttr::get(
getContext(), getTag(), recId, getName(), getFile(), getLine(),
getScope(), getBaseType(), getFlags(), getSizeInBits(), getAlignInBits(),
getElements(), getDataLocation(), getRank(), getAllocated(),
getAssociated());
getContext(), recId, /*isRecSelf=*/false, getTag(), getName(), getFile(),
getLine(), getScope(), getBaseType(), getFlags(), getSizeInBits(),
getAlignInBits(), getElements(), getDataLocation(), getRank(),
getAllocated(), getAssociated());
}

DIRecursiveTypeAttrInterface
DICompositeTypeAttr::getRecSelf(DistinctAttr recId) {
return DICompositeTypeAttr::get(recId.getContext(), 0, recId, {}, {}, 0, {},
{}, DIFlags(), 0, 0, {}, {}, {}, {}, {});
return DICompositeTypeAttr::get(recId.getContext(), recId, /*isRecSelf=*/true,
0, {}, {}, 0, {}, {}, DIFlags(), 0, 0, {}, {},
{}, {}, {});
}

//===----------------------------------------------------------------------===//
Expand All @@ -221,14 +222,14 @@ DICompositeTypeAttr::getRecSelf(DistinctAttr recId) {

DIRecursiveTypeAttrInterface DISubprogramAttr::withRecId(DistinctAttr recId) {
return DISubprogramAttr::get(
getContext(), getId(), recId, getCompileUnit(), getScope(), getName(),
getLinkageName(), getFile(), getLine(), getScopeLine(),
getSubprogramFlags(), getType(), getRetainedNodes());
getContext(), recId, /*isRecSelf=*/false, getId(), getCompileUnit(),
getScope(), getName(), getLinkageName(), getFile(), getLine(),
getScopeLine(), getSubprogramFlags(), getType(), getRetainedNodes());
}

DIRecursiveTypeAttrInterface DISubprogramAttr::getRecSelf(DistinctAttr recId) {
return DISubprogramAttr::get(recId.getContext(), {}, recId, {}, {}, {}, {}, 0,
0, {}, {}, {}, {});
return DISubprogramAttr::get(recId.getContext(), recId, /*isRecSelf=*/true,
{}, {}, {}, {}, {}, 0, 0, {}, {}, {}, {});
}

//===----------------------------------------------------------------------===//
Expand Down
8 changes: 3 additions & 5 deletions mlir/lib/Dialect/LLVMIR/Transforms/DIScopeForLLVMFuncOp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ static void addScopeToFunction(LLVM::LLVMFuncOp llvmFunc,
auto subroutineTypeAttr =
LLVM::DISubroutineTypeAttr::get(context, llvm::dwarf::DW_CC_normal, {});

StringAttr funcNameAttr = llvmFunc.getNameAttr();
// Only definitions need a distinct identifier and a compilation unit.
DistinctAttr id;
auto subprogramFlags = LLVM::DISubprogramFlags::Optimized;
Expand All @@ -75,11 +74,10 @@ static void addScopeToFunction(LLVM::LLVMFuncOp llvmFunc,
} else {
compileUnitAttr = {};
}
auto funcName = StringAttr::get(context, llvmFunc.getName());
auto subprogramAttr = LLVM::DISubprogramAttr::get(
context, id, /*recId=*/{}, compileUnitAttr, fileAttr, funcNameAttr,
funcNameAttr, fileAttr,
/*line=*/line,
/*scopeline=*/col, subprogramFlags, subroutineTypeAttr,
context, id, compileUnitAttr, fileAttr, funcName, funcName, fileAttr,
/*line=*/line, /*scopeline=*/col, subprogramFlags, subroutineTypeAttr,
/*retainedNodes=*/{});
llvmFunc->setLoc(FusedLoc::get(context, {loc}, subprogramAttr));
}
Expand Down
19 changes: 9 additions & 10 deletions mlir/lib/Target/LLVMIR/DebugImporter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,9 @@ DICompositeTypeAttr DebugImporter::translateImpl(llvm::DICompositeType *node) {
if (node->getTag() == llvm::dwarf::DW_TAG_array_type && !baseType)
return nullptr;
return DICompositeTypeAttr::get(
context, node->getTag(), /*recId=*/{},
getStringAttrOrNull(node->getRawName()), translate(node->getFile()),
node->getLine(), translate(node->getScope()), baseType,
flags.value_or(DIFlags::Zero), node->getSizeInBits(),
context, node->getTag(), getStringAttrOrNull(node->getRawName()),
translate(node->getFile()), node->getLine(), translate(node->getScope()),
baseType, flags.value_or(DIFlags::Zero), node->getSizeInBits(),
node->getAlignInBits(), elements,
translateExpression(node->getDataLocationExp()),
translateExpression(node->getRankExp()),
Expand Down Expand Up @@ -246,12 +245,12 @@ DISubprogramAttr DebugImporter::translateImpl(llvm::DISubprogram *node) {
if (llvm::is_contained(retainedNodes, nullptr))
retainedNodes.clear();

return DISubprogramAttr::get(
context, id, /*recId=*/{}, translate(node->getUnit()), scope,
getStringAttrOrNull(node->getRawName()),
getStringAttrOrNull(node->getRawLinkageName()),
translate(node->getFile()), node->getLine(), node->getScopeLine(),
*subprogramFlags, type, retainedNodes);
return DISubprogramAttr::get(context, id, translate(node->getUnit()), scope,
getStringAttrOrNull(node->getRawName()),
getStringAttrOrNull(node->getRawLinkageName()),
translate(node->getFile()), node->getLine(),
node->getScopeLine(), *subprogramFlags, type,
retainedNodes);
}

DISubrangeAttr DebugImporter::translateImpl(llvm::DISubrange *node) {
Expand Down
2 changes: 1 addition & 1 deletion mlir/lib/Target/LLVMIR/DebugTranslation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ DebugTranslation::translateRecursive(DIRecursiveTypeAttrInterface attr) {
iter != recursiveNodeMap.end()) {
return iter->second;
}
assert(!attr.isRecSelf() && "unbound DI recursive self reference");
assert(!attr.getIsRecSelf() && "unbound DI recursive self reference");

auto setRecursivePlaceholder = [&](llvm::DINode *placeholder) {
recursiveNodeMap.try_emplace(recursiveId, placeholder);
Expand Down
14 changes: 7 additions & 7 deletions mlir/test/CAPI/llvm.c
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ static void testDebugInfoAttributes(MlirContext ctx) {
// CHECK: #llvm.di_null_type
mlirAttributeDump(mlirLLVMDINullTypeAttrGet(ctx));

// CHECK: #llvm.di_basic_type<tag = DW_TAG_null, name = "foo", sizeInBits =
// CHECK: #llvm.di_basic_type<name = "foo", sizeInBits =
// CHECK-SAME: 64, encoding = DW_ATE_signed>
MlirAttribute di_type =
mlirLLVMDIBasicTypeAttrGet(ctx, 0, foo, 64, MlirLLVMTypeEncodingSigned);
Expand Down Expand Up @@ -317,16 +317,16 @@ static void testDebugInfoAttributes(MlirContext ctx) {
mlirAttributeDump(subroutine_type);

MlirAttribute di_subprogram_self_rec =
mlirLLVMDISubprogramAttrGetSelfRec(recId0);
mlirLLVMDISubprogramAttrGetRecSelf(recId0);
MlirAttribute di_imported_entity = mlirLLVMDIImportedEntityAttrGet(
ctx, 0, di_subprogram_self_rec, di_module, file, 1, foo, 1, &local_var);

mlirAttributeDump(di_imported_entity);
// CHECK: #llvm.di_imported_entity<{{.*}}>

MlirAttribute di_subprogram = mlirLLVMDISubprogramAttrGet(
ctx, id, recId0, compile_unit, compile_unit, foo, bar, file, 1, 2, 0,
subroutine_type, 1, &di_imported_entity);
ctx, recId0, false, id, compile_unit, compile_unit, foo, bar, file, 1, 2,
0, subroutine_type, 1, &di_imported_entity);
// CHECK: #llvm.di_subprogram<{{.*}}>
mlirAttributeDump(di_subprogram);

Expand Down Expand Up @@ -356,12 +356,12 @@ static void testDebugInfoAttributes(MlirContext ctx) {
// CHECK: #llvm.di_string_type<{{.*}}>
mlirAttributeDump(string_type);

// CHECK: #llvm.di_composite_type<tag = DW_TAG_null, recId = {{.*}}>
mlirAttributeDump(mlirLLVMDICompositeTypeAttrGetSelfRec(recId1));
// CHECK: #llvm.di_composite_type<recId = {{.*}}, isRecSelf = true>
mlirAttributeDump(mlirLLVMDICompositeTypeAttrGetRecSelf(recId1));

// CHECK: #llvm.di_composite_type<{{.*}}>
mlirAttributeDump(mlirLLVMDICompositeTypeAttrGet(
ctx, 0, recId1, foo, file, 1, compile_unit, di_type, 0, 64, 8, 1,
ctx, recId1, false, 0, foo, file, 1, compile_unit, di_type, 0, 64, 8, 1,
&di_type, expression, expression, expression, expression));
}

Expand Down
Loading

0 comments on commit 988d78e

Please sign in to comment.