Only add DW_AT_prototyped if we're working with a C-like language.

Worth another 45k (1%) off of a large C++ testcase.

rdar://10909458

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151144 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher
2012-02-22 08:46:21 +00:00
parent 438b092a4b
commit 8b6fe6b651
4 changed files with 18 additions and 9 deletions
+12 -3
View File
@@ -780,8 +780,12 @@ void CompileUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) {
Buffer.addChild(Arg);
}
}
// Add prototype flag.
if (isPrototyped)
// Add prototype flag if we're dealing with a C language and the
// function has been prototyped.
if (isPrototyped &&
(Language == dwarf::DW_LANG_C89 ||
Language == dwarf::DW_LANG_C99 ||
Language == dwarf::DW_LANG_ObjC))
addUInt(&Buffer, dwarf::DW_AT_prototyped, dwarf::DW_FORM_flag, 1);
}
break;
@@ -1023,7 +1027,12 @@ DIE *CompileUnit::getOrCreateSubprogramDIE(DISubprogram SP) {
addSourceLine(SPDie, SP);
if (SP.isPrototyped())
// Add the prototype if we have a prototype and we have a C like
// language.
if (SP.isPrototyped() &&
(Language == dwarf::DW_LANG_C89 ||
Language == dwarf::DW_LANG_C99 ||
Language == dwarf::DW_LANG_ObjC))
addUInt(SPDie, dwarf::DW_AT_prototyped, dwarf::DW_FORM_flag, 1);
// Add Return Type.