1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/unittests
Pavel Labath 0d0270ebc8 [Support] Use outs() in ToolOutputFile
Summary:
If the output filename was specified as "-", the ToolOutputFile class
would create a brand new raw_ostream object referring to the stdout.
This patch changes it to reuse the llvm::outs() singleton.

At the moment, this change should be "NFC", but it does enable other
enhancements, like the automatic stdout/stderr synchronization as
discussed on D80803.

I've checked the history, and I did not find any indication that this
class *has* to use a brand new stream object instead of outs() --
indeed, it is special-casing "-" in a number of places already, so this
change fits the pattern pretty well. I suspect the main reason for the
current state of affairs is that the class was originally introduced
(r111595, in 2010) as a raw_fd_ostream subclass, which made any other
solution impossible.

Another potential benefit of this patch is that it makes it possible to
move the raw_ostream class out of the business of special-casing "-" for
stdout handling. That state of affairs does not seem appropriate because
"-" is a valid filename (albeit hard to access with a lot of command
line tools) on most systems. Handling "-" in ToolOutputFile seems more
appropriate.

To make this possible, this patch changes the return type of
llvm::outs() and errs() to raw_fd_ostream&. Previously the functions
were constructing objects of that type, but returning a generic
raw_ostream reference. This makes it possible for new ToolOutputFile and
other code to use raw_fd_ostream methods like error() on the outs()
object. This does not seem like a bad thing (since stdout is a file
descriptor which can be redirected to anywhere, it makes sense to ask it
whether the writing was successful or if it supports seeking), and
indeed a lot of code was already depending on this fact via the
ToolOutputFile "back door".

Reviewers: dblaikie, JDevlieghere, MaskRay, jhenderson

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81078
2020-06-04 14:56:35 +02:00
..
ADT [LiveDebugValues] Speed up removeEntryValue, NFC 2020-06-01 11:02:36 -07:00
Analysis [PGO] Improve the working set size heuristics under the partial sample PGO. 2020-06-01 10:29:23 -07:00
AsmParser [SVE] Remove VectorType::getBitWidth() 2020-04-21 13:33:46 -07:00
BinaryFormat [MsgPack] Added convenience assignment to MsgPackDocument 2020-05-21 22:13:19 +01:00
Bitcode Add AutoUpgrade function to add new address space datalayout string to existing datalayouts. 2019-09-18 22:15:58 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [CodeGen] Fix warnings due to SelectionDAG::getSplatSourceVector 2020-05-05 08:45:41 +01:00
DebugInfo [Support] Make DataExtractor error messages more clear 2020-06-02 12:57:51 +02:00
Demangle Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ExecutionEngine [ORC] Share ownership of JITDylibs between ExecutionSession and 2020-05-10 16:37:17 -07:00
Frontend [OpenMP][OMPIRBuilder] Add Directives (master and critical) to OMPBuilder. 2020-02-15 01:15:45 -06:00
FuzzMutate [SVE] Update API ConstantVector::getSplat() to use ElementCount. 2020-03-12 13:22:41 -07:00
IR [VP][Fix] canIgnoreVectorLength for scalable types 2020-06-04 14:17:42 +02:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
MC [AIX][XCOFF] add symbol priority for the llvm-objdump -D -symbol-description 2020-05-29 11:08:51 -04:00
MI AMDGPU: Start adding MODE register uses to instructions 2020-05-27 14:47:00 -04:00
Object [VE] Implements minimum MC layer for VE (3/4) 2020-05-28 10:07:48 +02:00
ObjectYAML [VE] Implements minimum MC layer for VE (3/4) 2020-05-28 10:07:48 +02:00
Option Option spell checking: Penalize delimiter flags if input has no argument 2019-05-01 16:45:15 +00:00
Passes Don't export symbols from clang/opt/llc if plugins are disabled. 2020-03-23 12:17:09 -07:00
ProfileData [ProfileSummary] Add the PartialProfileRatio field in ProfileSummary metadata. 2020-05-21 09:12:23 -07:00
Remarks [Remarks] Fix error message check in unit test 2019-10-31 15:51:36 -07:00
Support [Support] Use outs() in ToolOutputFile 2020-06-04 14:56:35 +02:00
TableGen Make unittests include path relative 2020-02-21 10:19:11 +01:00
Target [ARM] Replace arm vendor with none. NFC 2020-04-22 18:19:35 +01:00
TextAPI Add missing MemoryBuffer.h include 2020-06-02 11:25:13 +01:00
tools [llvm-exegesis][NFC] Let the pfm::Counter own the PerfHelper. 2020-04-08 15:37:30 +02:00
Transforms [CodeMoverUtils] Use dominator tree level to decide the direction of 2020-05-27 18:02:06 +00:00
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
CMakeLists.txt CMake: Make most target symbols hidden by default 2020-01-14 19:46:52 -08:00
unittest.cfg.in Add support for unittest inputs. 2018-09-05 23:30:17 +00:00