diff options
Diffstat (limited to 'llvm/lib/Bitcode/Writer')
| -rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Bitcode/Writer/ValueEnumerator.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Bitcode/Writer/ValueEnumerator.h | 5 |
3 files changed, 5 insertions, 12 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index 80da91aa47e..08724bd8c81 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1431,15 +1431,13 @@ static void WriteFunctionLocalMetadata(const Function &F, BitstreamWriter &Stream) { bool StartedMetadataBlock = false; SmallVector<uint64_t, 64> Record; - const SmallVectorImpl<const LocalAsMetadata *> &MDs = - VE.getFunctionLocalMDs(); - for (unsigned i = 0, e = MDs.size(); i != e; ++i) { - assert(MDs[i] && "Expected valid function-local metadata"); + for (const Metadata *MD : VE.getFunctionMDs()) { + auto *Local = cast<LocalAsMetadata>(MD); if (!StartedMetadataBlock) { Stream.EnterSubblock(bitc::METADATA_BLOCK_ID, 3); StartedMetadataBlock = true; } - WriteValueAsMetadata(MDs[i], VE, Stream, Record); + WriteValueAsMetadata(Local, VE, Stream, Record); } if (StartedMetadataBlock) diff --git a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp index 69cafb7eeee..812baf20278 100644 --- a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -554,9 +554,6 @@ void ValueEnumerator::EnumerateFunctionLocalMetadata( MetadataID = MDs.size(); EnumerateValue(Local->getValue()); - - // Also, collect all function-local metadata for easy access. - FunctionLocalMDs.push_back(Local); } void ValueEnumerator::organizeMetadata() { @@ -778,7 +775,6 @@ void ValueEnumerator::purgeFunction() { Values.resize(NumModuleValues); MDs.resize(NumModuleMDs); BasicBlocks.clear(); - FunctionLocalMDs.clear(); } static void IncorporateFunctionInfoGlobalBBIDs(const Function *F, diff --git a/llvm/lib/Bitcode/Writer/ValueEnumerator.h b/llvm/lib/Bitcode/Writer/ValueEnumerator.h index fd09a695a99..7bfe9d98655 100644 --- a/llvm/lib/Bitcode/Writer/ValueEnumerator.h +++ b/llvm/lib/Bitcode/Writer/ValueEnumerator.h @@ -63,7 +63,6 @@ private: ComdatSetType Comdats; std::vector<const Metadata *> MDs; - SmallVector<const LocalAsMetadata *, 8> FunctionLocalMDs; typedef DenseMap<const Metadata *, unsigned> MetadataMapType; MetadataMapType MetadataMap; unsigned NumMDStrings = 0; @@ -161,8 +160,8 @@ public: ArrayRef<const Metadata *> getNonMDStrings() const { return makeArrayRef(MDs).slice(NumMDStrings); } - const SmallVectorImpl<const LocalAsMetadata *> &getFunctionLocalMDs() const { - return FunctionLocalMDs; + ArrayRef<const Metadata *> getFunctionMDs() const { + return makeArrayRef(MDs).slice(NumModuleMDs); } const TypeList &getTypes() const { return Types; } |

