mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
IR: Give 'DI' prefix to debug info metadata
Finish off PR23080 by renaming the debug info IR constructs from `MD*` to `DI*`. The last of the `DIDescriptor` classes were deleted in r235356, and the last of the related typedefs removed in r235413, so this has all baked for about a week. Note: If you have out-of-tree code (like a frontend), I recommend that you get everything compiling and tests passing with the *previous* commit before updating to this one. It'll be easier to keep track of what code is using the `DIDescriptor` hierarchy and what you've already updated, and I think you're extremely unlikely to insert bugs. YMMV of course. Back to *this* commit: I did this using the rename-md-di-nodes.sh upgrade script I've attached to PR23080 (both code and testcases) and filtered through clang-format-diff.py. I edited the tests for test/Assembler/invalid-generic-debug-node-*.ll by hand since the columns were off-by-three. It should work on your out-of-tree testcases (and code, if you've followed the advice in the previous paragraph). Some of the tests are in badly named files now (e.g., test/Assembler/invalid-mdcompositetype-missing-tag.ll should be 'dicompositetype'); I'll come back and move the files in a follow-up commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236120 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -2994,7 +2994,7 @@ bool LLParser::ParseMDTuple(MDNode *&MD, bool IsDistinct) {
|
||||
/// MDNode:
|
||||
/// ::= !{ ... }
|
||||
/// ::= !7
|
||||
/// ::= !MDLocation(...)
|
||||
/// ::= !DILocation(...)
|
||||
bool LLParser::ParseMDNode(MDNode *&N) {
|
||||
if (Lex.getKind() == lltok::MetadataVar)
|
||||
return ParseSpecializedMDNode(N);
|
||||
@ -3209,7 +3209,7 @@ bool LLParser::ParseMDField(LocTy Loc, StringRef Name, DIFlagField &Result) {
|
||||
if (Lex.getKind() != lltok::DIFlag)
|
||||
return TokError("expected debug info flag");
|
||||
|
||||
Val = DebugNode::getFlag(Lex.getStrVal());
|
||||
Val = DINode::getFlag(Lex.getStrVal());
|
||||
if (!Val)
|
||||
return TokError(Twine("invalid debug info flag flag '") +
|
||||
Lex.getStrVal() + "'");
|
||||
@ -3391,9 +3391,9 @@ bool LLParser::ParseSpecializedMDNode(MDNode *&N, bool IsDistinct) {
|
||||
#define GET_OR_DISTINCT(CLASS, ARGS) \
|
||||
(IsDistinct ? CLASS::getDistinct ARGS : CLASS::get ARGS)
|
||||
|
||||
/// ParseMDLocationFields:
|
||||
/// ::= !MDLocation(line: 43, column: 8, scope: !5, inlinedAt: !6)
|
||||
bool LLParser::ParseMDLocation(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDILocationFields:
|
||||
/// ::= !DILocation(line: 43, column: 8, scope: !5, inlinedAt: !6)
|
||||
bool LLParser::ParseDILocation(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(line, LineField, ); \
|
||||
OPTIONAL(column, ColumnField, ); \
|
||||
@ -3403,13 +3403,13 @@ bool LLParser::ParseMDLocation(MDNode *&Result, bool IsDistinct) {
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(
|
||||
MDLocation, (Context, line.Val, column.Val, scope.Val, inlinedAt.Val));
|
||||
DILocation, (Context, line.Val, column.Val, scope.Val, inlinedAt.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseGenericDebugNode:
|
||||
/// ::= !GenericDebugNode(tag: 15, header: "...", operands: {...})
|
||||
bool LLParser::ParseGenericDebugNode(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseGenericDINode:
|
||||
/// ::= !GenericDINode(tag: 15, header: "...", operands: {...})
|
||||
bool LLParser::ParseGenericDINode(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(tag, DwarfTagField, ); \
|
||||
OPTIONAL(header, MDStringField, ); \
|
||||
@ -3417,40 +3417,40 @@ bool LLParser::ParseGenericDebugNode(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(GenericDebugNode,
|
||||
Result = GET_OR_DISTINCT(GenericDINode,
|
||||
(Context, tag.Val, header.Val, operands.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDSubrange:
|
||||
/// ::= !MDSubrange(count: 30, lowerBound: 2)
|
||||
bool LLParser::ParseMDSubrange(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDISubrange:
|
||||
/// ::= !DISubrange(count: 30, lowerBound: 2)
|
||||
bool LLParser::ParseDISubrange(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(count, MDSignedField, (-1, -1, INT64_MAX)); \
|
||||
OPTIONAL(lowerBound, MDSignedField, );
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDSubrange, (Context, count.Val, lowerBound.Val));
|
||||
Result = GET_OR_DISTINCT(DISubrange, (Context, count.Val, lowerBound.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDEnumerator:
|
||||
/// ::= !MDEnumerator(value: 30, name: "SomeKind")
|
||||
bool LLParser::ParseMDEnumerator(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDIEnumerator:
|
||||
/// ::= !DIEnumerator(value: 30, name: "SomeKind")
|
||||
bool LLParser::ParseDIEnumerator(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(name, MDStringField, ); \
|
||||
REQUIRED(value, MDSignedField, );
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDEnumerator, (Context, value.Val, name.Val));
|
||||
Result = GET_OR_DISTINCT(DIEnumerator, (Context, value.Val, name.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDBasicType:
|
||||
/// ::= !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32)
|
||||
bool LLParser::ParseMDBasicType(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDIBasicType:
|
||||
/// ::= !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32)
|
||||
bool LLParser::ParseDIBasicType(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(tag, DwarfTagField, (dwarf::DW_TAG_base_type)); \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
@ -3460,16 +3460,16 @@ bool LLParser::ParseMDBasicType(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDBasicType, (Context, tag.Val, name.Val, size.Val,
|
||||
Result = GET_OR_DISTINCT(DIBasicType, (Context, tag.Val, name.Val, size.Val,
|
||||
align.Val, encoding.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDDerivedType:
|
||||
/// ::= !MDDerivedType(tag: DW_TAG_pointer_type, name: "int", file: !0,
|
||||
/// ParseDIDerivedType:
|
||||
/// ::= !DIDerivedType(tag: DW_TAG_pointer_type, name: "int", file: !0,
|
||||
/// line: 7, scope: !1, baseType: !2, size: 32,
|
||||
/// align: 32, offset: 0, flags: 0, extraData: !3)
|
||||
bool LLParser::ParseMDDerivedType(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDIDerivedType(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(tag, DwarfTagField, ); \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
@ -3485,14 +3485,14 @@ bool LLParser::ParseMDDerivedType(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDDerivedType,
|
||||
Result = GET_OR_DISTINCT(DIDerivedType,
|
||||
(Context, tag.Val, name.Val, file.Val, line.Val,
|
||||
scope.Val, baseType.Val, size.Val, align.Val,
|
||||
offset.Val, flags.Val, extraData.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LLParser::ParseMDCompositeType(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDICompositeType(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(tag, DwarfTagField, ); \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
@ -3513,44 +3513,44 @@ bool LLParser::ParseMDCompositeType(MDNode *&Result, bool IsDistinct) {
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(
|
||||
MDCompositeType,
|
||||
DICompositeType,
|
||||
(Context, tag.Val, name.Val, file.Val, line.Val, scope.Val, baseType.Val,
|
||||
size.Val, align.Val, offset.Val, flags.Val, elements.Val,
|
||||
runtimeLang.Val, vtableHolder.Val, templateParams.Val, identifier.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LLParser::ParseMDSubroutineType(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDISubroutineType(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(flags, DIFlagField, ); \
|
||||
REQUIRED(types, MDField, );
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDSubroutineType, (Context, flags.Val, types.Val));
|
||||
Result = GET_OR_DISTINCT(DISubroutineType, (Context, flags.Val, types.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDFileType:
|
||||
/// ::= !MDFileType(filename: "path/to/file", directory: "/path/to/dir")
|
||||
bool LLParser::ParseMDFile(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDIFileType:
|
||||
/// ::= !DIFileType(filename: "path/to/file", directory: "/path/to/dir")
|
||||
bool LLParser::ParseDIFile(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(filename, MDStringField, ); \
|
||||
REQUIRED(directory, MDStringField, );
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDFile, (Context, filename.Val, directory.Val));
|
||||
Result = GET_OR_DISTINCT(DIFile, (Context, filename.Val, directory.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDCompileUnit:
|
||||
/// ::= !MDCompileUnit(language: DW_LANG_C99, file: !0, producer: "clang",
|
||||
/// ParseDICompileUnit:
|
||||
/// ::= !DICompileUnit(language: DW_LANG_C99, file: !0, producer: "clang",
|
||||
/// isOptimized: true, flags: "-O2", runtimeVersion: 1,
|
||||
/// splitDebugFilename: "abc.debug", emissionKind: 1,
|
||||
/// enums: !1, retainedTypes: !2, subprograms: !3,
|
||||
/// globals: !4, imports: !5)
|
||||
bool LLParser::ParseMDCompileUnit(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDICompileUnit(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(language, DwarfLangField, ); \
|
||||
REQUIRED(file, MDField, (/* AllowNull */ false)); \
|
||||
@ -3568,7 +3568,7 @@ bool LLParser::ParseMDCompileUnit(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDCompileUnit,
|
||||
Result = GET_OR_DISTINCT(DICompileUnit,
|
||||
(Context, language.Val, file.Val, producer.Val,
|
||||
isOptimized.Val, flags.Val, runtimeVersion.Val,
|
||||
splitDebugFilename.Val, emissionKind.Val, enums.Val,
|
||||
@ -3577,15 +3577,15 @@ bool LLParser::ParseMDCompileUnit(MDNode *&Result, bool IsDistinct) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDSubprogram:
|
||||
/// ::= !MDSubprogram(scope: !0, name: "foo", linkageName: "_Zfoo",
|
||||
/// ParseDISubprogram:
|
||||
/// ::= !DISubprogram(scope: !0, name: "foo", linkageName: "_Zfoo",
|
||||
/// file: !1, line: 7, type: !2, isLocal: false,
|
||||
/// isDefinition: true, scopeLine: 8, containingType: !3,
|
||||
/// virtuality: DW_VIRTUALTIY_pure_virtual,
|
||||
/// virtualIndex: 10, flags: 11,
|
||||
/// isOptimized: false, function: void ()* @_Z3foov,
|
||||
/// templateParams: !4, declaration: !5, variables: !6)
|
||||
bool LLParser::ParseMDSubprogram(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDISubprogram(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(scope, MDField, ); \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
@ -3609,7 +3609,7 @@ bool LLParser::ParseMDSubprogram(MDNode *&Result, bool IsDistinct) {
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(
|
||||
MDSubprogram, (Context, scope.Val, name.Val, linkageName.Val, file.Val,
|
||||
DISubprogram, (Context, scope.Val, name.Val, linkageName.Val, file.Val,
|
||||
line.Val, type.Val, isLocal.Val, isDefinition.Val,
|
||||
scopeLine.Val, containingType.Val, virtuality.Val,
|
||||
virtualIndex.Val, flags.Val, isOptimized.Val, function.Val,
|
||||
@ -3617,9 +3617,9 @@ bool LLParser::ParseMDSubprogram(MDNode *&Result, bool IsDistinct) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDLexicalBlock:
|
||||
/// ::= !MDLexicalBlock(scope: !0, file: !2, line: 7, column: 9)
|
||||
bool LLParser::ParseMDLexicalBlock(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDILexicalBlock:
|
||||
/// ::= !DILexicalBlock(scope: !0, file: !2, line: 7, column: 9)
|
||||
bool LLParser::ParseDILexicalBlock(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(scope, MDField, (/* AllowNull */ false)); \
|
||||
OPTIONAL(file, MDField, ); \
|
||||
@ -3629,13 +3629,13 @@ bool LLParser::ParseMDLexicalBlock(MDNode *&Result, bool IsDistinct) {
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(
|
||||
MDLexicalBlock, (Context, scope.Val, file.Val, line.Val, column.Val));
|
||||
DILexicalBlock, (Context, scope.Val, file.Val, line.Val, column.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDLexicalBlockFile:
|
||||
/// ::= !MDLexicalBlockFile(scope: !0, file: !2, discriminator: 9)
|
||||
bool LLParser::ParseMDLexicalBlockFile(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDILexicalBlockFile:
|
||||
/// ::= !DILexicalBlockFile(scope: !0, file: !2, discriminator: 9)
|
||||
bool LLParser::ParseDILexicalBlockFile(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(scope, MDField, (/* AllowNull */ false)); \
|
||||
OPTIONAL(file, MDField, ); \
|
||||
@ -3643,14 +3643,14 @@ bool LLParser::ParseMDLexicalBlockFile(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDLexicalBlockFile,
|
||||
Result = GET_OR_DISTINCT(DILexicalBlockFile,
|
||||
(Context, scope.Val, file.Val, discriminator.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDNamespace:
|
||||
/// ::= !MDNamespace(scope: !0, file: !2, name: "SomeNamespace", line: 9)
|
||||
bool LLParser::ParseMDNamespace(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDINamespace:
|
||||
/// ::= !DINamespace(scope: !0, file: !2, name: "SomeNamespace", line: 9)
|
||||
bool LLParser::ParseDINamespace(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(scope, MDField, ); \
|
||||
OPTIONAL(file, MDField, ); \
|
||||
@ -3659,14 +3659,14 @@ bool LLParser::ParseMDNamespace(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDNamespace,
|
||||
Result = GET_OR_DISTINCT(DINamespace,
|
||||
(Context, scope.Val, file.Val, name.Val, line.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDTemplateTypeParameter:
|
||||
/// ::= !MDTemplateTypeParameter(name: "Ty", type: !1)
|
||||
bool LLParser::ParseMDTemplateTypeParameter(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDITemplateTypeParameter:
|
||||
/// ::= !DITemplateTypeParameter(name: "Ty", type: !1)
|
||||
bool LLParser::ParseDITemplateTypeParameter(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
REQUIRED(type, MDField, );
|
||||
@ -3674,14 +3674,14 @@ bool LLParser::ParseMDTemplateTypeParameter(MDNode *&Result, bool IsDistinct) {
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result =
|
||||
GET_OR_DISTINCT(MDTemplateTypeParameter, (Context, name.Val, type.Val));
|
||||
GET_OR_DISTINCT(DITemplateTypeParameter, (Context, name.Val, type.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDTemplateValueParameter:
|
||||
/// ::= !MDTemplateValueParameter(tag: DW_TAG_template_value_parameter,
|
||||
/// ParseDITemplateValueParameter:
|
||||
/// ::= !DITemplateValueParameter(tag: DW_TAG_template_value_parameter,
|
||||
/// name: "V", type: !1, value: i32 7)
|
||||
bool LLParser::ParseMDTemplateValueParameter(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDITemplateValueParameter(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(tag, DwarfTagField, (dwarf::DW_TAG_template_value_parameter)); \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
@ -3690,17 +3690,17 @@ bool LLParser::ParseMDTemplateValueParameter(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDTemplateValueParameter,
|
||||
Result = GET_OR_DISTINCT(DITemplateValueParameter,
|
||||
(Context, tag.Val, name.Val, type.Val, value.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDGlobalVariable:
|
||||
/// ::= !MDGlobalVariable(scope: !0, name: "foo", linkageName: "foo",
|
||||
/// ParseDIGlobalVariable:
|
||||
/// ::= !DIGlobalVariable(scope: !0, name: "foo", linkageName: "foo",
|
||||
/// file: !1, line: 7, type: !2, isLocal: false,
|
||||
/// isDefinition: true, variable: i32* @foo,
|
||||
/// declaration: !3)
|
||||
bool LLParser::ParseMDGlobalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDIGlobalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(name, MDStringField, (/* AllowEmpty */ false)); \
|
||||
OPTIONAL(scope, MDField, ); \
|
||||
@ -3715,17 +3715,17 @@ bool LLParser::ParseMDGlobalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDGlobalVariable,
|
||||
Result = GET_OR_DISTINCT(DIGlobalVariable,
|
||||
(Context, scope.Val, name.Val, linkageName.Val,
|
||||
file.Val, line.Val, type.Val, isLocal.Val,
|
||||
isDefinition.Val, variable.Val, declaration.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDLocalVariable:
|
||||
/// ::= !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !0, name: "foo",
|
||||
/// ParseDILocalVariable:
|
||||
/// ::= !DILocalVariable(tag: DW_TAG_arg_variable, scope: !0, name: "foo",
|
||||
/// file: !1, line: 7, type: !2, arg: 2, flags: 7)
|
||||
bool LLParser::ParseMDLocalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDILocalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(tag, DwarfTagField, ); \
|
||||
REQUIRED(scope, MDField, (/* AllowNull */ false)); \
|
||||
@ -3738,15 +3738,15 @@ bool LLParser::ParseMDLocalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDLocalVariable,
|
||||
Result = GET_OR_DISTINCT(DILocalVariable,
|
||||
(Context, tag.Val, scope.Val, name.Val, file.Val,
|
||||
line.Val, type.Val, arg.Val, flags.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDExpression:
|
||||
/// ::= !MDExpression(0, 7, -1)
|
||||
bool LLParser::ParseMDExpression(MDNode *&Result, bool IsDistinct) {
|
||||
/// ParseDIExpression:
|
||||
/// ::= !DIExpression(0, 7, -1)
|
||||
bool LLParser::ParseDIExpression(MDNode *&Result, bool IsDistinct) {
|
||||
assert(Lex.getKind() == lltok::MetadataVar && "Expected metadata type name");
|
||||
Lex.Lex();
|
||||
|
||||
@ -3778,14 +3778,14 @@ bool LLParser::ParseMDExpression(MDNode *&Result, bool IsDistinct) {
|
||||
if (ParseToken(lltok::rparen, "expected ')' here"))
|
||||
return true;
|
||||
|
||||
Result = GET_OR_DISTINCT(MDExpression, (Context, Elements));
|
||||
Result = GET_OR_DISTINCT(DIExpression, (Context, Elements));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDObjCProperty:
|
||||
/// ::= !MDObjCProperty(name: "foo", file: !1, line: 7, setter: "setFoo",
|
||||
/// ParseDIObjCProperty:
|
||||
/// ::= !DIObjCProperty(name: "foo", file: !1, line: 7, setter: "setFoo",
|
||||
/// getter: "getFoo", attributes: 7, type: !2)
|
||||
bool LLParser::ParseMDObjCProperty(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDIObjCProperty(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
OPTIONAL(name, MDStringField, ); \
|
||||
OPTIONAL(file, MDField, ); \
|
||||
@ -3797,16 +3797,16 @@ bool LLParser::ParseMDObjCProperty(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDObjCProperty,
|
||||
Result = GET_OR_DISTINCT(DIObjCProperty,
|
||||
(Context, name.Val, file.Val, line.Val, setter.Val,
|
||||
getter.Val, attributes.Val, type.Val));
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ParseMDImportedEntity:
|
||||
/// ::= !MDImportedEntity(tag: DW_TAG_imported_module, scope: !0, entity: !1,
|
||||
/// ParseDIImportedEntity:
|
||||
/// ::= !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0, entity: !1,
|
||||
/// line: 7, name: "foo")
|
||||
bool LLParser::ParseMDImportedEntity(MDNode *&Result, bool IsDistinct) {
|
||||
bool LLParser::ParseDIImportedEntity(MDNode *&Result, bool IsDistinct) {
|
||||
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
|
||||
REQUIRED(tag, DwarfTagField, ); \
|
||||
REQUIRED(scope, MDField, ); \
|
||||
@ -3816,7 +3816,7 @@ bool LLParser::ParseMDImportedEntity(MDNode *&Result, bool IsDistinct) {
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
Result = GET_OR_DISTINCT(MDImportedEntity, (Context, tag.Val, scope.Val,
|
||||
Result = GET_OR_DISTINCT(DIImportedEntity, (Context, tag.Val, scope.Val,
|
||||
entity.Val, line.Val, name.Val));
|
||||
return false;
|
||||
}
|
||||
@ -3871,7 +3871,7 @@ bool LLParser::ParseValueAsMetadata(Metadata *&MD, const Twine &TypeMsg,
|
||||
/// ::= !42
|
||||
/// ::= !{...}
|
||||
/// ::= !"string"
|
||||
/// ::= !MDLocation(...)
|
||||
/// ::= !DILocation(...)
|
||||
bool LLParser::ParseMetadata(Metadata *&MD, PerFunctionState *PFS) {
|
||||
if (Lex.getKind() == lltok::MetadataVar) {
|
||||
MDNode *N;
|
||||
|
Reference in New Issue
Block a user