@@ -25,6 +25,9 @@ static cl::SubCommand CountSub("count",
2525
2626INPUT_FORMAT_COMMAND_LINE_OPTIONS (CountSub)
2727INPUT_OUTPUT_COMMAND_LINE_OPTIONS(CountSub)
28+ REMARK_FILTER_COMMAND_LINE_OPTIONS(CountSub)
29+
30+ REMARK_FILTER_SETUP_FUNC()
2831
2932static cl::list<std::string>
3033 Keys(" args" , cl::desc(" Specify remark argument/s to count by." ),
@@ -34,45 +37,7 @@ static cl::list<std::string> RKeys(
3437 cl::desc (
3538 " Specify remark argument/s to count (accepts regular expressions)." ),
3639 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));
4540
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));
7641static cl::opt<CountBy> CountByOpt (
7742 " count-by" , cl::desc(" Specify the property to collect remarks by." ),
7843 cl::values(
@@ -112,21 +77,6 @@ static unsigned getValForKey(StringRef Key, const Remark &Remark) {
11277 return *RemarkArg->getValAsInt ();
11378}
11479
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-
13080Error ArgumentCounter::getAllMatchingArgumentsInRemark (
13181 StringRef Buffer, ArrayRef<FilterMatcher> Arguments, Filters &Filter) {
13282 auto MaybeParser = createRemarkParser (InputFormat, Buffer);
@@ -223,33 +173,6 @@ Error RemarkCounter::print(StringRef OutputFileName) {
223173 return Error::success ();
224174}
225175
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-
253176Error useCollectRemark (StringRef Buffer, Counter &Counter, Filters &Filter) {
254177 // Create Parser.
255178 auto MaybeParser = createRemarkParser (InputFormat, Buffer);
@@ -278,7 +201,7 @@ static Error collectRemarks() {
278201 if (!MaybeBuf)
279202 return MaybeBuf.takeError ();
280203 StringRef Buffer = (*MaybeBuf)->getBuffer ();
281- auto MaybeFilter = getRemarkFilter ();
204+ auto MaybeFilter = getRemarkFilters ();
282205 if (!MaybeFilter)
283206 return MaybeFilter.takeError ();
284207 auto &Filter = *MaybeFilter;
0 commit comments