diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/IR/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/lib/IR/DiagnosticInfo.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/IR/LLVMContext.cpp | 26 | ||||
-rw-r--r-- | llvm/lib/IR/LLVMContextImpl.h | 3 | ||||
-rw-r--r-- | llvm/lib/IR/RemarkStreamer.cpp | 28 | ||||
-rw-r--r-- | llvm/lib/LTO/LTO.cpp | 5 |
7 files changed, 16 insertions, 49 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 7d95c4d..5319519 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -78,7 +78,6 @@ #include "llvm/IR/Metadata.h" #include "llvm/IR/Module.h" #include "llvm/IR/Operator.h" -#include "llvm/IR/RemarkStreamer.h" #include "llvm/IR/Type.h" #include "llvm/IR/Value.h" #include "llvm/MC/MCAsmInfo.h" diff --git a/llvm/lib/IR/CMakeLists.txt b/llvm/lib/IR/CMakeLists.txt index b129319..2ea01b8 100644 --- a/llvm/lib/IR/CMakeLists.txt +++ b/llvm/lib/IR/CMakeLists.txt @@ -46,7 +46,6 @@ add_llvm_library(LLVMCore PassManager.cpp PassRegistry.cpp PassTimingInfo.cpp - RemarkStreamer.cpp SafepointIRVerifier.cpp ProfileSummary.cpp Statepoint.cpp diff --git a/llvm/lib/IR/DiagnosticInfo.cpp b/llvm/lib/IR/DiagnosticInfo.cpp index 020305d..14bee35 100644 --- a/llvm/lib/IR/DiagnosticInfo.cpp +++ b/llvm/lib/IR/DiagnosticInfo.cpp @@ -27,7 +27,6 @@ #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Metadata.h" #include "llvm/IR/Module.h" -#include "llvm/IR/RemarkStreamer.h" #include "llvm/IR/Type.h" #include "llvm/IR/Value.h" #include "llvm/Support/Casting.h" diff --git a/llvm/lib/IR/LLVMContext.cpp b/llvm/lib/IR/LLVMContext.cpp index 75d0218..1cea214 100644 --- a/llvm/lib/IR/LLVMContext.cpp +++ b/llvm/lib/IR/LLVMContext.cpp @@ -21,7 +21,6 @@ #include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/Metadata.h" #include "llvm/IR/Module.h" -#include "llvm/IR/RemarkStreamer.h" #include "llvm/Support/Casting.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/raw_ostream.h" @@ -161,15 +160,12 @@ uint64_t LLVMContext::getDiagnosticsHotnessThreshold() const { return pImpl->DiagnosticsHotnessThreshold; } -RemarkStreamer *LLVMContext::getRemarkStreamer() { - return pImpl->RemarkStreamer.get(); +yaml::Output *LLVMContext::getDiagnosticsOutputFile() { + return pImpl->DiagnosticsOutputFile.get(); } -const RemarkStreamer *LLVMContext::getRemarkStreamer() const { - return const_cast<LLVMContext *>(this)->getRemarkStreamer(); -} -void LLVMContext::setRemarkStreamer( - std::unique_ptr<RemarkStreamer> RemarkStreamer) { - pImpl->RemarkStreamer = std::move(RemarkStreamer); + +void LLVMContext::setDiagnosticsOutputFile(std::unique_ptr<yaml::Output> F) { + pImpl->DiagnosticsOutputFile = std::move(F); } DiagnosticHandler::DiagnosticHandlerTy @@ -232,10 +228,14 @@ LLVMContext::getDiagnosticMessagePrefix(DiagnosticSeverity Severity) { } void LLVMContext::diagnose(const DiagnosticInfo &DI) { - if (auto *OptDiagBase = dyn_cast<DiagnosticInfoOptimizationBase>(&DI)) - if (RemarkStreamer *RS = getRemarkStreamer()) - RS->emit(*OptDiagBase); - + if (auto *OptDiagBase = dyn_cast<DiagnosticInfoOptimizationBase>(&DI)) { + yaml::Output *Out = getDiagnosticsOutputFile(); + if (Out) { + // For remarks the << operator takes a reference to a pointer. + auto *P = const_cast<DiagnosticInfoOptimizationBase *>(OptDiagBase); + *Out << P; + } + } // If there is a report handler, use it. if (pImpl->DiagHandler && (!pImpl->RespectDiagnosticFilters || isDiagnosticEnabled(DI)) && diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h index b8974ef..f7038ac 100644 --- a/llvm/lib/IR/LLVMContextImpl.h +++ b/llvm/lib/IR/LLVMContextImpl.h @@ -37,7 +37,6 @@ #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Metadata.h" -#include "llvm/IR/RemarkStreamer.h" #include "llvm/IR/TrackingMDRef.h" #include "llvm/Support/Allocator.h" #include "llvm/Support/Casting.h" @@ -1227,7 +1226,7 @@ public: bool RespectDiagnosticFilters = false; bool DiagnosticsHotnessRequested = false; uint64_t DiagnosticsHotnessThreshold = 0; - std::unique_ptr<RemarkStreamer> RemarkStreamer; + std::unique_ptr<yaml::Output> DiagnosticsOutputFile; LLVMContext::YieldCallbackTy YieldCallback = nullptr; void *YieldOpaqueHandle = nullptr; diff --git a/llvm/lib/IR/RemarkStreamer.cpp b/llvm/lib/IR/RemarkStreamer.cpp deleted file mode 100644 index 0b98340..0000000 --- a/llvm/lib/IR/RemarkStreamer.cpp +++ /dev/null @@ -1,28 +0,0 @@ -//===- llvm/IR/RemarkStreamer.cpp - Remark Streamer -*- C++ -------------*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file contains the implementation of the remark outputting as part of -// LLVMContext. -// -//===----------------------------------------------------------------------===// - -#include "llvm/IR/RemarkStreamer.h" - -using namespace llvm; - -RemarkStreamer::RemarkStreamer(StringRef Filename, raw_ostream &OS) - : Filename(Filename), OS(OS), - YAMLOutput(OS, reinterpret_cast<void *>(this)) { - assert(!Filename.empty() && "This needs to be a real filename."); -} - -void RemarkStreamer::emit(const DiagnosticInfoOptimizationBase &Diag) { - DiagnosticInfoOptimizationBase *DiagPtr = - const_cast<DiagnosticInfoOptimizationBase *>(&Diag); - YAMLOutput << DiagPtr; -} diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp index f6e34c5..8e0d532 100644 --- a/llvm/lib/LTO/LTO.cpp +++ b/llvm/lib/LTO/LTO.cpp @@ -24,7 +24,6 @@ #include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/Mangler.h" #include "llvm/IR/Metadata.h" -#include "llvm/IR/RemarkStreamer.h" #include "llvm/LTO/LTOBackend.h" #include "llvm/LTO/SummaryBasedOptimizations.h" #include "llvm/Linker/IRMover.h" @@ -1327,8 +1326,8 @@ lto::setupOptimizationRemarks(LLVMContext &Context, llvm::make_unique<ToolOutputFile>(Filename, EC, sys::fs::F_None); if (EC) return errorCodeToError(EC); - Context.setRemarkStreamer( - llvm::make_unique<RemarkStreamer>(Filename, DiagnosticFile->os())); + Context.setDiagnosticsOutputFile( + llvm::make_unique<yaml::Output>(DiagnosticFile->os())); DiagnosticFile->keep(); return std::move(DiagnosticFile); } |