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
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* 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");
|
printf(" -P Benchmark using PCRE (if supported).\n");
|
||||||
#endif
|
#endif
|
||||||
#if defined(HAVE_DECL_PTHREAD_SETAFFINITY_NP) || defined(_WIN32)
|
#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
|
#endif
|
||||||
printf(" -i DIR Don't compile, load from files in DIR"
|
printf(" -i DIR Don't compile, load from files in DIR"
|
||||||
" instead.\n");
|
" instead.\n");
|
||||||
@ -354,7 +356,8 @@ void processArgs(int argc, char *argv[], vector<BenchmarkSigs> &sigSets,
|
|||||||
case 'T':
|
case 'T':
|
||||||
if (!strToList(optarg, threadCores)) {
|
if (!strToList(optarg, threadCores)) {
|
||||||
usage("Couldn't parse argument to -T flag, should be"
|
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);
|
exit(1);
|
||||||
}
|
}
|
||||||
break;
|
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
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* 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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// read in a comma-separated set of values: very simple impl, not for
|
// read in a comma-separated or hyphen-connected set of values: very simple
|
||||||
// external consumption
|
// impl, not for external consumption
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline bool strToList(const std::string &s, std::vector<T>& out)
|
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);
|
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();
|
return !out.empty();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user