diff options
Diffstat (limited to 'llvm/include')
-rw-r--r-- | llvm/include/llvm/IR/RemarkStreamer.h | 7 | ||||
-rw-r--r-- | llvm/include/llvm/LTO/Config.h | 3 | ||||
-rw-r--r-- | llvm/include/llvm/LTO/LTO.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/llvm/include/llvm/IR/RemarkStreamer.h b/llvm/include/llvm/IR/RemarkStreamer.h index 38baa2b3b4b..64de27e3726 100644 --- a/llvm/include/llvm/IR/RemarkStreamer.h +++ b/llvm/include/llvm/IR/RemarkStreamer.h @@ -14,8 +14,10 @@ #define LLVM_IR_REMARKSTREAMER_H #include "llvm/IR/DiagnosticInfo.h" +#include "llvm/Support/Error.h" #include "llvm/Support/YAMLTraits.h" #include "llvm/Support/raw_ostream.h" +#include "llvm/Support/Regex.h" #include <string> #include <vector> @@ -26,6 +28,8 @@ class RemarkStreamer { const std::string Filename; /// The open raw_ostream that the remark diagnostics are emitted to. raw_ostream &OS; + /// The regex used to filter remarks based on the passes that emit them. + Optional<Regex> PassFilter; /// The YAML streamer. yaml::Output YAMLOutput; @@ -36,6 +40,9 @@ public: StringRef getFilename() const { return Filename; } /// Return stream that the remark diagnostics are emitted to. raw_ostream &getStream() { return OS; } + /// Set a pass filter based on a regex \p Filter. + /// Returns an error if the regex is invalid. + Error setFilter(StringRef Filter); /// Emit a diagnostic through the streamer. void emit(const DiagnosticInfoOptimizationBase &Diag); }; diff --git a/llvm/include/llvm/LTO/Config.h b/llvm/include/llvm/LTO/Config.h index bf8cc98ac4d..1e2eeab11c0 100644 --- a/llvm/include/llvm/LTO/Config.h +++ b/llvm/include/llvm/LTO/Config.h @@ -96,6 +96,9 @@ struct Config { /// Optimization remarks file path. std::string RemarksFilename = ""; + /// Optimization remarks pass filter. + std::string RemarksPasses = ""; + /// Whether to emit optimization remarks with hotness informations. bool RemarksWithHotness = false; diff --git a/llvm/include/llvm/LTO/LTO.h b/llvm/include/llvm/LTO/LTO.h index ab4d874b55e..be37dbd0c59 100644 --- a/llvm/include/llvm/LTO/LTO.h +++ b/llvm/include/llvm/LTO/LTO.h @@ -84,6 +84,7 @@ std::string getThinLTOOutputFile(const std::string &Path, /// Setup optimization remarks. Expected<std::unique_ptr<ToolOutputFile>> setupOptimizationRemarks(LLVMContext &Context, StringRef LTORemarksFilename, + StringRef LTORemarksPasses, bool LTOPassRemarksWithHotness, int Count = -1); class LTO; |