diff options
Diffstat (limited to 'llvm/tools/llvm-remarkutil/RemarkUtilHelpers.cpp')
-rw-r--r-- | llvm/tools/llvm-remarkutil/RemarkUtilHelpers.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/tools/llvm-remarkutil/RemarkUtilHelpers.cpp b/llvm/tools/llvm-remarkutil/RemarkUtilHelpers.cpp index ad6c46e..be52948 100644 --- a/llvm/tools/llvm-remarkutil/RemarkUtilHelpers.cpp +++ b/llvm/tools/llvm-remarkutil/RemarkUtilHelpers.cpp @@ -92,5 +92,22 @@ FilterMatcher::createExactOrRE(const llvm::cl::opt<std::string> &ExactArg, return std::nullopt; } +bool Filters::filterRemark(const Remark &Remark) { + if (FunctionFilter && !FunctionFilter->match(Remark.FunctionName)) + return false; + if (RemarkNameFilter && !RemarkNameFilter->match(Remark.RemarkName)) + return false; + if (PassNameFilter && !PassNameFilter->match(Remark.PassName)) + return false; + if (RemarkTypeFilter) + return *RemarkTypeFilter == Remark.RemarkType; + if (ArgFilter) { + if (!any_of(Remark.Args, + [this](Argument Arg) { return ArgFilter->match(Arg.Val); })) + return false; + } + return true; +} + } // namespace remarks } // namespace llvm |