5 #include "llvm/Remarks/RemarkSerializer.h"
6 #include "llvm/Remarks/RemarkStreamer.h"
7 #include "llvm/Support/Error.h"
8 #include "llvm/Support/FileSystem.h"
9 #include "llvm/Support/ToolOutputFile.h"
13 FailureOr<std::unique_ptr<MLIRRemarkStreamerBase>>
15 llvm::remarks::Format fmt) {
19 std::make_unique<llvm::ToolOutputFile>(path, ec, llvm::sys::fs::OF_Text);
23 auto serOr = llvm::remarks::createRemarkSerializer(
24 fmt, llvm::remarks::SerializerMode::Separate, f->os());
26 llvm::consumeError(serOr.takeError());
31 std::make_unique<llvm::remarks::RemarkStreamer>(std::move(*serOr), path);
34 impl->remarkStreamer = std::move(rs);
35 impl->file = std::move(f);
36 return std::unique_ptr<MLIRRemarkStreamerBase>(std::move(
impl));
46 remarkStreamer->getSerializer().emit(r);
50 if (file && remarkStreamer)
57 MLIRContext &ctx, StringRef path, llvm::remarks::Format fmt,
60 FailureOr<std::unique_ptr<detail::MLIRRemarkStreamerBase>> sOr =
MLIRContext is the top-level object for a collection of MLIR operations.