@@ -25,6 +25,9 @@ static cl::SubCommand CountSub("count",
25
25
26
26
INPUT_FORMAT_COMMAND_LINE_OPTIONS (CountSub)
27
27
INPUT_OUTPUT_COMMAND_LINE_OPTIONS(CountSub)
28
+ REMARK_FILTER_COMMAND_LINE_OPTIONS(CountSub)
29
+
30
+ REMARK_FILTER_SETUP_FUNC()
28
31
29
32
static cl::list<std::string>
30
33
Keys(" args" , cl::desc(" Specify remark argument/s to count by." ),
@@ -34,45 +37,7 @@ static cl::list<std::string> RKeys(
34
37
cl::desc (
35
38
" Specify remark argument/s to count (accepts regular expressions)." ),
36
39
cl::value_desc(" arguments" ), cl::sub(CountSub), cl::ValueOptional);
37
- static cl::opt<std::string>
38
- RemarkNameOpt (" remark-name" ,
39
- cl::desc (" Optional remark name to filter collection by." ),
40
- cl::ValueOptional, cl::sub(CountSub));
41
- static cl::opt<std::string>
42
- PassNameOpt (" pass-name" , cl::ValueOptional,
43
- cl::desc (" Optional remark pass name to filter collection by." ),
44
- cl::sub(CountSub));
45
40
46
- static cl::opt<std::string> RemarkFilterArgByOpt (
47
- " filter-arg-by" , cl::desc(" Optional remark arg to filter collection by." ),
48
- cl::ValueOptional, cl::sub(CountSub));
49
- static cl::opt<std::string>
50
- RemarkNameOptRE (" rremark-name" ,
51
- cl::desc (" Optional remark name to filter collection by "
52
- " (accepts regular expressions)." ),
53
- cl::ValueOptional, cl::sub(CountSub));
54
- static cl::opt<std::string>
55
- RemarkArgFilterOptRE (" rfilter-arg-by" ,
56
- cl::desc (" Optional remark arg to filter collection by "
57
- " (accepts regular expressions)." ),
58
- cl::sub(CountSub), cl::ValueOptional);
59
- static cl::opt<std::string>
60
- PassNameOptRE (" rpass-name" , cl::ValueOptional,
61
- cl::desc (" Optional remark pass name to filter collection "
62
- " by (accepts regular expressions)." ),
63
- cl::sub(CountSub));
64
- static cl::opt<Type> RemarkTypeOpt (
65
- " remark-type" , cl::desc(" Optional remark type to filter collection by." ),
66
- cl::values(clEnumValN(Type::Unknown, " unknown" , " UNKOWN" ),
67
- clEnumValN(Type::Passed, " passed" , " PASSED" ),
68
- clEnumValN(Type::Missed, " missed" , " MISSED" ),
69
- clEnumValN(Type::Analysis, " analysis" , " ANALYSIS" ),
70
- clEnumValN(Type::AnalysisFPCommute, " analysis-fp-commute" ,
71
- " ANALYSIS_FP_COMMUTE" ),
72
- clEnumValN(Type::AnalysisAliasing, " analysis-aliasing" ,
73
- " ANALYSIS_ALIASING" ),
74
- clEnumValN(Type::Failure, " failure" , " FAILURE" )),
75
- cl::init(Type::Failure), cl::sub(CountSub));
76
41
static cl::opt<CountBy> CountByOpt (
77
42
" count-by" , cl::desc(" Specify the property to collect remarks by." ),
78
43
cl::values(
@@ -112,21 +77,6 @@ static unsigned getValForKey(StringRef Key, const Remark &Remark) {
112
77
return *RemarkArg->getValAsInt ();
113
78
}
114
79
115
- bool Filters::filterRemark (const Remark &Remark) {
116
- if (RemarkNameFilter && !RemarkNameFilter->match (Remark.RemarkName ))
117
- return false ;
118
- if (PassNameFilter && !PassNameFilter->match (Remark.PassName ))
119
- return false ;
120
- if (RemarkTypeFilter)
121
- return *RemarkTypeFilter == Remark.RemarkType ;
122
- if (ArgFilter) {
123
- if (!any_of (Remark.Args ,
124
- [this ](Argument Arg) { return ArgFilter->match (Arg.Val ); }))
125
- return false ;
126
- }
127
- return true ;
128
- }
129
-
130
80
Error ArgumentCounter::getAllMatchingArgumentsInRemark (
131
81
StringRef Buffer, ArrayRef<FilterMatcher> Arguments, Filters &Filter) {
132
82
auto MaybeParser = createRemarkParser (InputFormat, Buffer);
@@ -223,33 +173,6 @@ Error RemarkCounter::print(StringRef OutputFileName) {
223
173
return Error::success ();
224
174
}
225
175
226
- Expected<Filters> getRemarkFilter () {
227
- // Create Filter properties.
228
- auto MaybeRemarkNameFilter =
229
- FilterMatcher::createExactOrRE (RemarkNameOpt, RemarkNameOptRE);
230
- if (!MaybeRemarkNameFilter)
231
- return MaybeRemarkNameFilter.takeError ();
232
-
233
- auto MaybePassNameFilter =
234
- FilterMatcher::createExactOrRE (PassNameOpt, PassNameOptRE);
235
- if (!MaybePassNameFilter)
236
- return MaybePassNameFilter.takeError ();
237
-
238
- auto MaybeRemarkArgFilter = FilterMatcher::createExactOrRE (
239
- RemarkFilterArgByOpt, RemarkArgFilterOptRE);
240
- if (!MaybeRemarkArgFilter)
241
- return MaybeRemarkArgFilter.takeError ();
242
-
243
- std::optional<Type> RemarkType;
244
- if (RemarkTypeOpt != Type::Failure)
245
- RemarkType = RemarkTypeOpt;
246
-
247
- // Create RemarkFilter.
248
- return Filters{std::move (*MaybeRemarkNameFilter),
249
- std::move (*MaybePassNameFilter),
250
- std::move (*MaybeRemarkArgFilter), RemarkType};
251
- }
252
-
253
176
Error useCollectRemark (StringRef Buffer, Counter &Counter, Filters &Filter) {
254
177
// Create Parser.
255
178
auto MaybeParser = createRemarkParser (InputFormat, Buffer);
@@ -278,7 +201,7 @@ static Error collectRemarks() {
278
201
if (!MaybeBuf)
279
202
return MaybeBuf.takeError ();
280
203
StringRef Buffer = (*MaybeBuf)->getBuffer ();
281
- auto MaybeFilter = getRemarkFilter ();
204
+ auto MaybeFilter = getRemarkFilters ();
282
205
if (!MaybeFilter)
283
206
return MaybeFilter.takeError ();
284
207
auto &Filter = *MaybeFilter;
0 commit comments