zlib::compress on SmallVectorImpl<char> uses compressBound() to compute
the upper bound of the compressed buffer (larger than the source),
allocates initialized (zeroed) SmallVectorImpl<char>, which makes every
allocated page resident.
However, the actual size of the compressed buffer is usually much
smaller. Making every page resident is wasteful.
std::unique_ptr<uint8_t[]> backed buffer is uninitialized and avoids
redundant resident pages.
For a test binary with ~1.9GiB uncompressed debug info, this optimization
decreases max RSS by ~1.5GiB.