[flang] runtime perf: larger I/O buffer growth increments

When reallocating an I/O buffer to accommodate a large record,
ensure that the amount of growth is at least as large as the
minimum initial record size (64KiB).  The previous policy was
causing input buffer reallocation for each byte after the minimum
buffer size when scanning input data for record termination
newlines.

Differential Revision: https://reviews.llvm.org/D118649
This commit is contained in:
Peter Klausler 2022-01-20 14:09:05 -08:00
parent 623b66eded
commit 702c0cfa07
1 changed files with 1 additions and 1 deletions

View File

@ -135,7 +135,7 @@ private:
if (bytes > size_) {
char *old{buffer_};
auto oldSize{size_};
size_ = std::max<std::int64_t>(bytes, minBuffer);
size_ = std::max<std::int64_t>(bytes, size_ + minBuffer);
buffer_ =
reinterpret_cast<char *>(AllocateMemoryOrCrash(terminator, size_));
auto chunk{std::min<std::int64_t>(length_, oldSize - start_)};