| //===- RemarkUtilHelpers.h ------------------------------------------------===// |
| // |
| // 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 |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // Helpers for remark utilites |
| // |
| //===----------------------------------------------------------------------===// |
| #include "llvm-c/Remarks.h" |
| #include "llvm/ADT/StringRef.h" |
| #include "llvm/Remarks/Remark.h" |
| #include "llvm/Remarks/RemarkFormat.h" |
| #include "llvm/Remarks/RemarkParser.h" |
| #include "llvm/Remarks/YAMLRemarkSerializer.h" |
| #include "llvm/Support/Error.h" |
| #include "llvm/Support/FileSystem.h" |
| #include "llvm/Support/MemoryBuffer.h" |
| #include "llvm/Support/ToolOutputFile.h" |
| |
| // Keep input + output help + names consistent across the various modes via a |
| // hideous macro. |
| #define INPUT_OUTPUT_COMMAND_LINE_OPTIONS(SUBOPT) \ |
| static cl::opt<std::string> InputFileName(cl::Positional, cl::init("-"), \ |
| cl::desc("<input file>"), \ |
| cl::sub(SUBOPT)); \ |
| static cl::opt<std::string> OutputFileName( \ |
| "o", cl::init("-"), cl::desc("Output"), cl::value_desc("filename"), \ |
| cl::sub(SUBOPT)); |
| |
| // Keep Input format and names consistent accross the modes via a macro. |
| #define INPUT_FORMAT_COMMAND_LINE_OPTIONS(SUBOPT) \ |
| static cl::opt<Format> InputFormat( \ |
| "parser", cl::desc("Input remark format to parse"), \ |
| cl::values(clEnumValN(Format::YAML, "yaml", "YAML"), \ |
| clEnumValN(Format::Bitstream, "bitstream", "Bitstream")), \ |
| cl::sub(SUBOPT)); |
| |
| #define DEBUG_LOC_INFO_COMMAND_LINE_OPTIONS(SUBOPT) \ |
| static cl::opt<bool> UseDebugLoc( \ |
| "use-debug-loc", \ |
| cl::desc( \ |
| "Add debug loc information when generating tables for " \ |
| "functions. The loc is represented as (path:line number:column " \ |
| "number)"), \ |
| cl::init(false), cl::sub(SUBOPT)); |
| |
| namespace llvm { |
| namespace remarks { |
| Expected<std::unique_ptr<MemoryBuffer>> |
| getInputMemoryBuffer(StringRef InputFileName); |
| Expected<std::unique_ptr<ToolOutputFile>> |
| getOutputFileWithFlags(StringRef OutputFileName, sys::fs::OpenFlags Flags); |
| Expected<std::unique_ptr<ToolOutputFile>> |
| getOutputFileForRemarks(StringRef OutputFileName, Format OutputFormat); |
| } // namespace remarks |
| } // namespace llvm |