//===- 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 InputFileName(cl::Positional, cl::init("-"), \ cl::desc(""), \ cl::sub(SUBOPT)); \ static cl::opt 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 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 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> getInputMemoryBuffer(StringRef InputFileName); Expected> getOutputFileWithFlags(StringRef OutputFileName, sys::fs::OpenFlags Flags); Expected> getOutputFileForRemarks(StringRef OutputFileName, Format OutputFormat); } // namespace remarks } // namespace llvm