Commit d46ac44e authored by David Stenberg's avatar David Stenberg
Browse files

Change Comments SmallVector to std::vector in DebugLocStream [NFC]

This changes the 32-element SmallVector to a std::vector. When building
a RelWithDebInfo clang-8 binary, the average size of the vector was
~10000, so it does not seem very beneficial or practical to use a small
vector for that.

The DWARFBytes SmallVector grows in the same way as Comments, so perhaps
that also should be changed to a purely dynamically allocated structure,
but that requires some more code changes, so I let that remain as a
SmallVector for now.

llvm-svn: 374871
parent f7c213c9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ class HashingByteStreamer final : public ByteStreamer {
class BufferByteStreamer final : public ByteStreamer {
private:
  SmallVectorImpl<char> &Buffer;
  SmallVectorImpl<std::string> &Comments;
  std::vector<std::string> &Comments;

  /// Only verbose textual output needs comments.  This will be set to
  /// true for that case, and false otherwise.  If false, comments passed in to
@@ -82,7 +82,7 @@ private:

public:
  BufferByteStreamer(SmallVectorImpl<char> &Buffer,
                     SmallVectorImpl<std::string> &Comments,
                     std::vector<std::string> &Comments,
                     bool GenerateComments)
  : Buffer(Buffer), Comments(Comments), GenerateComments(GenerateComments) {}
  void EmitInt8(uint8_t Byte, const Twine &Comment) override {
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ private:
  SmallVector<List, 4> Lists;
  SmallVector<Entry, 32> Entries;
  SmallString<256> DWARFBytes;
  SmallVector<std::string, 32> Comments;
  std::vector<std::string> Comments;

  /// Only verbose textual output needs comments.  This will be set to
  /// true for that case, and false otherwise.