aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/APFloat.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2021-09-09 09:27:14 -0700
committerFangrui Song <i@maskray.me>2021-09-09 09:27:14 -0700
commit0db402c5b4ef60ca8d20dda8bb59c7288a534e2a (patch)
tree93e760672d597379d475b037382ebad27e5e0450 /llvm/lib/Support/APFloat.cpp
parent0782e55c26bf56cd28c26793920fa37883bcf689 (diff)
downloadllvm-0db402c5b4ef60ca8d20dda8bb59c7288a534e2a.zip
llvm-0db402c5b4ef60ca8d20dda8bb59c7288a534e2a.tar.gz
llvm-0db402c5b4ef60ca8d20dda8bb59c7288a534e2a.tar.bz2
[lld] Buffer writes when composing a single diagnostic
llvm::errs() is unbuffered. On a POSIX platform, composing a diagnostic string may invoke the ::write syscall multiple times, which can be slow. Buffer writes to a temporary SmallString when composing a single diagnostic to reduce the number of ::write syscalls to one (also easier to read under strace/truss). For an invocation of ld.lld with 62000+ lines of `ld.lld: warning: symbol ordering file: no such symbol: ` warnings (D87121), the buffering decreases the write time from 1s to 0.4s (for /dev/tty) and from 0.4s to 0.1s (for a tmpfs file). This can speed up `relocation R_X86_64_PC32 out of range` diagnostic printing as well with `--noinhibit-exec --no-fatal-warnings`. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D87272
Diffstat (limited to 'llvm/lib/Support/APFloat.cpp')
0 files changed, 0 insertions, 0 deletions