AsmWriter: Only collect attachment names once per module

Collect metadata names once per `AssemblyWriter` instead of every time
we need to print some attachments.  Just a drive-by; this caught my eye
while I was refactoring the code in r235772.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235774 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith 2015-04-24 21:03:05 +00:00
parent 5f10af2b53
commit c8be244db7

View File

@ -1943,6 +1943,7 @@ class AssemblyWriter {
SetVector<const Comdat *> Comdats;
bool ShouldPreserveUseListOrder;
UseListOrderStack UseListOrders;
SmallVector<StringRef, 8> MDNames;
public:
/// Construct an AssemblyWriter with an external SlotTracker
@ -2967,8 +2968,9 @@ void AssemblyWriter::printMetadataAttachments(
if (MDs.empty())
return;
SmallVector<StringRef, 8> MDNames;
TheModule->getMDKindNames(MDNames);
if (MDNames.empty())
TheModule->getMDKindNames(MDNames);
for (const auto &I : MDs) {
unsigned Kind = I.first;
if (Kind < MDNames.size()) {