aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-10-22 18:55:16 +0000
committerDevang Patel <dpatel@apple.com>2009-10-22 18:55:16 +0000
commit6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd (patch)
tree22a37aa431bf00a89e3b8913094fd755e6606e97 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent084679e70a6462bd56aed8ebf48feec7065f122f (diff)
downloadllvm-6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd.zip
llvm-6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd.tar.gz
llvm-6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd.tar.bz2
Fix getMDs() interface such that it does not expose implementation details.
llvm-svn: 84885
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index c8cb595..037854e2 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -561,14 +561,16 @@ static void WriteMetadataAttachment(const Function &F,
// Write metadata attachments
// METADATA_ATTACHMENT - [m x [value, [n x [id, mdnode]]]
MetadataContext &TheMetadata = F.getContext().getMetadata();
+ typedef SmallVector<std::pair<unsigned, TrackingVH<MDNode> >, 2> MDMapTy;
+ MDMapTy MDs;
for (Function::const_iterator BB = F.begin(), E = F.end(); BB != E; ++BB)
for (BasicBlock::const_iterator I = BB->begin(), E = BB->end();
I != E; ++I) {
- const MetadataContext::MDMapTy *P = TheMetadata.getMDs(I);
- if (!P) continue;
+ MDs.clear();
+ TheMetadata.getMDs(I, MDs);
bool RecordedInstruction = false;
- for (MetadataContext::MDMapTy::const_iterator PI = P->begin(),
- PE = P->end(); PI != PE; ++PI) {
+ for (MDMapTy::const_iterator PI = MDs.begin(), PE = MDs.end();
+ PI != PE; ++PI) {
if (RecordedInstruction == false) {
Record.push_back(VE.getInstructionID(I));
RecordedInstruction = true;