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"),
57 cl::desc(
"Enable missed optimization remarks from passes whose name match "
58 "the given regular expression"),
68 "Enable optimization analysis remarks from passes whose name match "
69 "the given regular expression"),
75 return (PassRemarksAnalysisOptLoc.Pattern &&
76 PassRemarksAnalysisOptLoc.Pattern->match(
PassName));
79 return (PassRemarksMissedOptLoc.Pattern &&
80 PassRemarksMissedOptLoc.Pattern->match(
PassName));
83 return (PassRemarksPassedOptLoc.Pattern &&
84 PassRemarksPassedOptLoc.Pattern->match(
PassName));
88 return (PassRemarksPassedOptLoc.Pattern || PassRemarksMissedOptLoc.Pattern ||
89 PassRemarksAnalysisOptLoc.Pattern);