[all-commits] [llvm/llvm-project] f2f1e6: [BOLT] Make sure temp object file is always written

Job Noorman via All-commits all-commits at lists.llvm.org
Tue Jul 11 00:35:52 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f2f1e670b097f3e46b82222b6e5a69a6207a9e88
  Author: Job Noorman <jnoorman at igalia.com>
  Date:   2023-07-11 (Tue, 11 Jul 2023)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  [BOLT] Make sure temp object file is always written

BOLT used `ToolOutputFile::keep` to make sure the intermediary object
file was written to disk for debugging purposes when `--keep-tmp` was
passed. However, since and intermediary `buffer_ostream` was used to
stream to, and this class only writes to its output stream in its
destructor, the object file was lost whenever its destructor wouldn't
run. This could happen, for example, if there is a crash while linking.

This patch makes sure the object file is written to disk immediately
after we're done creating it. This is very useful while debugging
JITLink crashes. This patch also gets rid of creating a temporary file
when `--keep-tmp` is not passed by streaming the object file directly to
a `SmallString`.

Reviewed By: maksfb

Differential Revision: https://reviews.llvm.org/D154826

More information about the All-commits mailing list