Lines Matching refs:cmd_data

189 #define MAINLOOP(cmd_data, BENCH, COMPUTE_AVG, PRINT_ITER, PRINT_AVG) \
191 int iters = cmd_data.args[1]; \
192 bool print_average = cmd_data.print_average; \
193 bool print_each_iter = cmd_data.print_each_iter; \
219 #define MAINLOOP_DATA(name, cmd_data, size, BENCH) \
220 size_t copies = cmd_data.data_size/size; \
222 MAINLOOP(cmd_data, \
232 #define MAINLOOP_COLD(name, cmd_data, size, num_incrs, BENCH) \
239 if (num_buffers * size < static_cast<size_t>(cmd_data.data_size)) { \
240 copies = cmd_data.data_size / (num_buffers * size); \
247 MAINLOOP(cmd_data, \
264 #define BENCH_ONE_BUF(name, cmd_data, INIT, BENCH) \
265 size_t size = cmd_data.args[0]; \
266 uint8_t *buf = allocateAlignedMemory(size, cmd_data.dst_align, cmd_data.dst_or_mask); \
270 MAINLOOP_DATA(name, cmd_data, size, BENCH);
278 #define BENCH_TWO_BUFS(name, cmd_data, INIT, BENCH) \
279 size_t size = cmd_data.args[0]; \
280 uint8_t *buf1 = allocateAlignedMemory(size, cmd_data.src_align, cmd_data.src_or_mask); \
284 if (cmd_data.dst_str_size > 0) \
285 total_size += cmd_data.dst_str_size; \
286 uint8_t *buf2 = allocateAlignedMemory(total_size, cmd_data.dst_align, cmd_data.dst_or_mask); \
290 MAINLOOP_DATA(name, cmd_data, size, BENCH);
305 #define COLD_ONE_BUF(name, cmd_data, INIT, BENCH) \
306 size_t size = cmd_data.args[0]; \
307 size_t incr = getAlignmentIncrement(size, cmd_data.dst_align); \
308 size_t num_buffers = cmd_data.cold_data_size / incr; \
310 uint8_t *buffer = getColdBuffer(num_buffers, incr, cmd_data.dst_align, cmd_data.dst_or_mask); \
313 size_t num_incrs = cmd_data.cold_stride_size / incr + 1; \
318 MAINLOOP_COLD(name, cmd_data, size, num_incrs, \
338 #define COLD_TWO_BUFS(name, cmd_data, INIT, BENCH) \
339 size_t size = cmd_data.args[0]; \
340 size_t buf1_incr = getAlignmentIncrement(size, cmd_data.src_align); \
342 if (cmd_data.dst_str_size > 0) \
343 total_size += cmd_data.dst_str_size; \
344 size_t buf2_incr = getAlignmentIncrement(total_size, cmd_data.dst_align); \
346 size_t num_buffers = cmd_data.cold_data_size / max_incr; \
349 uint8_t *buffer1 = getColdBuffer(num_buffers, buf1_incr, cmd_data.src_align, cmd_data.src_or_mask); \
352 uint8_t *buffer2 = getColdBuffer(num_buffers, buf2_incr, cmd_data.dst_align, cmd_data.dst_or_mask); \
356 size_t num_incrs = cmd_data.cold_stride_size / min_incr + 1; \
363 MAINLOOP_COLD(name, cmd_data, size, num_incrs, \
372 int benchmarkSleep(const char *name, const command_data_t &cmd_data, void_func_t func) {
373 int delay = cmd_data.args[0];
374 MAINLOOP(cmd_data, sleep(delay),
384 int benchmarkCpu(const char *name, const command_data_t &cmd_data, void_func_t func) {
388 MAINLOOP(cmd_data,
398 int benchmarkMemset(const char *name, const command_data_t &cmd_data, void_func_t func) {
400 BENCH_ONE_BUF(name, cmd_data, ;, memset_func(buf, i, size));
405 int benchmarkMemsetCold(const char *name, const command_data_t &cmd_data, void_func_t func) {
407 COLD_ONE_BUF(name, cmd_data, ;, memset_func(buf, l, size));
412 int benchmarkMemcpy(const char *name, const command_data_t &cmd_data, void_func_t func) {
415 BENCH_TWO_BUFS(name, cmd_data,
423 int benchmarkMemcpyCold(const char *name, const command_data_t &cmd_data, void_func_t func) {
426 COLD_TWO_BUFS(name, cmd_data,
434 int benchmarkMemread(const char *name, const command_data_t &cmd_data, void_func_t func) {
435 int size = cmd_data.args[0];
445 MAINLOOP_DATA(name, cmd_data, size,
451 int benchmarkStrcmp(const char *name, const command_data_t &cmd_data, void_func_t func) {
455 BENCH_TWO_BUFS(name, cmd_data,
464 int benchmarkStrcmpCold(const char *name, const command_data_t &cmd_data, void_func_t func) {
468 COLD_TWO_BUFS(name, cmd_data,
481 int benchmarkStrlen(const char *name, const command_data_t &cmd_data, void_func_t func) {
484 BENCH_ONE_BUF(name, cmd_data,
495 int benchmarkStrlenCold(const char *name, const command_data_t &cmd_data, void_func_t func) {
498 COLD_ONE_BUF(name, cmd_data,
511 int benchmarkStrcat(const char *name, const command_data_t &cmd_data, void_func_t func) {
514 int dst_str_size = cmd_data.dst_str_size;
520 BENCH_TWO_BUFS(name, cmd_data,
528 int benchmarkStrcatCold(const char *name, const command_data_t &cmd_data, void_func_t func) {
531 int dst_str_size = cmd_data.dst_str_size;
537 COLD_TWO_BUFS(name, cmd_data,
550 int benchmarkStrcpy(const char *name, const command_data_t &cmd_data, void_func_t func) {
553 BENCH_TWO_BUFS(name, cmd_data,
561 int benchmarkStrcpyCold(const char *name, const command_data_t &cmd_data, void_func_t func) {
564 COLD_TWO_BUFS(name, cmd_data,
656 function_t *processOptions(int argc, char **argv, command_data_t *cmd_data) {
660 cmd_data->print_average = false;
661 cmd_data->print_each_iter = true;
662 cmd_data->dst_align = 0;
663 cmd_data->src_align = 0;
664 cmd_data->src_or_mask = 0;
665 cmd_data->dst_or_mask = 0;
666 cmd_data->num_args = 0;
667 cmd_data->cpu_to_lock = -1;
668 cmd_data->data_size = DEFAULT_DATA_SIZE;
669 cmd_data->dst_str_size = -1;
670 cmd_data->cold_data_size = DEFAULT_COLD_DATA_SIZE;
671 cmd_data->cold_stride_size = DEFAULT_COLD_STRIDE_SIZE;
673 cmd_data->args[i] = -1;
680 cmd_data->print_average = true;
682 cmd_data->print_each_iter = false;
684 save_value = &cmd_data->dst_align;
686 save_value = &cmd_data->src_align;
688 save_value = &cmd_data->dst_or_mask;
690 save_value = &cmd_data->src_or_mask;
692 save_value = &cmd_data->cpu_to_lock;
694 save_value = &cmd_data->data_size;
696 save_value = &cmd_data->dst_str_size;
698 save_value = &cmd_data->cold_data_size;
700 save_value = &cmd_data->cold_stride_size;
728 } else if (cmd_data->num_args > MAX_ARGS) {
732 cmd_data->args[cmd_data->num_args++] = atoi(argv[i]);
737 if (cmd_data->num_args != 1 && cmd_data->num_args != 2) {
740 } else if (cmd_data->dst_align < 0) {
743 } else if (cmd_data->src_align < 0) {
746 } else if (cmd_data->data_size <= 0) {
749 } else if ((cmd_data->dst_align & (cmd_data->dst_align - 1))) {
752 } else if ((cmd_data->src_align & (cmd_data->src_align - 1))) {
755 } else if (!cmd_data->src_align && cmd_data->src_or_mask) {
758 } else if (!cmd_data->dst_align && cmd_data->dst_or_mask) {
761 } else if (cmd_data->src_or_mask > cmd_data->src_align) {
764 } else if (cmd_data->dst_or_mask > cmd_data->dst_align) {
814 command_data_t cmd_data;
816 function_t *command = processOptions(argc, argv, &cmd_data);
822 if (!raisePriorityAndLock(cmd_data.cpu_to_lock)) {
827 return (*command->ptr)(command->name, cmd_data, command->func);