mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
hsbench: add hyphen support for -T option
This commit is contained in:
parent
3ff54f68e4
commit
ec68facfaa
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2019, Intel Corporation
|
||||
* Copyright (c) 2016-2020, Intel Corporation
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -207,7 +207,9 @@ void usage(const char *error) {
|
||||
printf(" -P Benchmark using PCRE (if supported).\n");
|
||||
#endif
|
||||
#if defined(HAVE_DECL_PTHREAD_SETAFFINITY_NP) || defined(_WIN32)
|
||||
printf(" -T CPU,CPU,... Benchmark with threads on these CPUs.\n");
|
||||
printf(" -T CPU,CPU,... or -T CPU-CPU\n");
|
||||
printf(" Benchmark with threads on specified CPUs or CPU"
|
||||
" range.\n");
|
||||
#endif
|
||||
printf(" -i DIR Don't compile, load from files in DIR"
|
||||
" instead.\n");
|
||||
@ -354,7 +356,8 @@ void processArgs(int argc, char *argv[], vector<BenchmarkSigs> &sigSets,
|
||||
case 'T':
|
||||
if (!strToList(optarg, threadCores)) {
|
||||
usage("Couldn't parse argument to -T flag, should be"
|
||||
" a list of positive integers.");
|
||||
" a list of positive integers or 2 integers"
|
||||
" connected with hyphen.");
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2019, Intel Corporation
|
||||
* Copyright (c) 2015-2020, Intel Corporation
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -54,8 +54,8 @@ inline bool fromString(const std::string &s, T& val)
|
||||
return true;
|
||||
}
|
||||
|
||||
// read in a comma-separated set of values: very simple impl, not for
|
||||
// external consumption
|
||||
// read in a comma-separated or hyphen-connected set of values: very simple
|
||||
// impl, not for external consumption
|
||||
template<typename T>
|
||||
inline bool strToList(const std::string &s, std::vector<T>& out)
|
||||
{
|
||||
@ -68,7 +68,17 @@ inline bool strToList(const std::string &s, std::vector<T>& out)
|
||||
}
|
||||
|
||||
out.push_back(val);
|
||||
} while (i.get(c) && c == ',');
|
||||
|
||||
i.get(c);
|
||||
if (c == '-') {
|
||||
T val_end;
|
||||
i >> val_end;
|
||||
while (val < val_end) {
|
||||
out.push_back(++val);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} while (c == ',');
|
||||
|
||||
return !out.empty();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user