24 struct PassRemarksOpt {
27 void operator=(
const std::string &Val) {
30 Pattern = std::make_shared<Regex>(Val);
31 std::string RegexError;
32 if (!
Pattern->isValid(RegexError))
34 "' in -pass-remarks: " + RegexError,
40 static PassRemarksOpt PassRemarksPassedOptLoc;
41 static PassRemarksOpt PassRemarksMissedOptLoc;
42 static PassRemarksOpt PassRemarksAnalysisOptLoc;
48 cl::desc(
"Enable optimization remarks from passes whose name match "
49 "the given regular expression"),
56 cl::desc(
"Enable missed optimization remarks from passes whose name match "
57 "the given regular expression"),
66 "Enable optimization analysis remarks from passes whose name match "
67 "the given regular expression"),
72 return (PassRemarksAnalysisOptLoc.Pattern &&
73 PassRemarksAnalysisOptLoc.Pattern->match(
PassName));
76 return (PassRemarksMissedOptLoc.Pattern &&
77 PassRemarksMissedOptLoc.Pattern->match(
PassName));
80 return (PassRemarksPassedOptLoc.Pattern &&
81 PassRemarksPassedOptLoc.Pattern->match(
PassName));
85 return (PassRemarksPassedOptLoc.Pattern || PassRemarksMissedOptLoc.Pattern ||
86 PassRemarksAnalysisOptLoc.Pattern);