diff options
author | Daniel Dunbar <daniel@zuster.org> | 2012-02-29 20:31:09 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2012-02-29 20:31:09 +0000 |
commit | acbceeae4d7bdfbbc3437c60a5a3e26449888a15 (patch) | |
tree | b12362a7581d05d67c62db9b1ea09c1af039c040 /lib/Bitcode | |
parent | a8d16bbdfba55b309234cecbabad015a13683781 (diff) |
BitstreamWriter: Change primary output buffer to be a SmallVector instead of an
std::vector.
- Good for 1-2% speedup on writing PCH for Cocoa.h.
- Clang side API match to follow shortly, there wasn't an easy way to make this
non-breaking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151750 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bitcode')
-rw-r--r-- | lib/Bitcode/Writer/BitcodeWriter.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp index c6c7fb7dcb..9376990680 100644 --- a/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1774,8 +1774,7 @@ enum { DarwinBCHeaderSize = 5*4 }; -static void WriteInt32ToBuffer(uint32_t Value, - std::vector<unsigned char> &Buffer, +static void WriteInt32ToBuffer(uint32_t Value, SmallVectorImpl<char> &Buffer, uint32_t &Position) { Buffer[Position + 0] = (unsigned char) (Value >> 0); Buffer[Position + 1] = (unsigned char) (Value >> 8); @@ -1784,7 +1783,7 @@ static void WriteInt32ToBuffer(uint32_t Value, Position += 4; } -static void EmitDarwinBCHeaderAndTrailer(std::vector<unsigned char> &Buffer, +static void EmitDarwinBCHeaderAndTrailer(SmallVectorImpl<char> &Buffer, const Triple &TT) { unsigned CPUType = ~0U; @@ -1833,7 +1832,7 @@ static void EmitDarwinBCHeaderAndTrailer(std::vector<unsigned char> &Buffer, /// WriteBitcodeToFile - Write the specified module to the specified output /// stream. void llvm::WriteBitcodeToFile(const Module *M, raw_ostream &Out) { - std::vector<unsigned char> Buffer; + SmallVector<char, 1024> Buffer; Buffer.reserve(256*1024); // If this is darwin or another generic macho target, reserve space for the |