GCC Code Coverage Report


Directory: ./
File: apps/volk-config-info.cc
Date: 2023-10-23 23:10:04
Exec Total Coverage
Lines: 0 25 0.0%
Functions: 0 3 0.0%
Branches: 0 120 0.0%

Line Branch Exec Source
1 /* -*- c++ -*- */
2 /*
3 * Copyright 2013, 2016, 2018 Free Software Foundation, Inc.
4 *
5 * This file is part of VOLK
6 *
7 * SPDX-License-Identifier: LGPL-3.0-or-later
8 */
9
10 #if HAVE_CONFIG_H
11 #include <config.h>
12 #endif
13
14 #include <volk/constants.h> // for volk_available_machines, volk_c_com...
15 #include <iostream> // for operator<<, endl, cout, ostream
16 #include <string> // for string
17
18 #include "volk/volk.h" // for volk_get_alignment, volk_get_machine
19 #include "volk_option_helpers.h" // for option_list, option_t
20
21 void print_alignment()
22 {
23 std::cout << "Alignment in bytes: " << volk_get_alignment() << std::endl;
24 }
25
26 void print_malloc()
27 {
28 // You don't want to change the volk_malloc code, so just copy the if/else
29 // structure from there and give an explanation for the implementations
30 std::cout << "Used malloc implementation: ";
31 #if HAVE_POSIX_MEMALIGN
32 std::cout << "posix_memalign" << std::endl;
33 #elif defined(_MSC_VER)
34 std::cout << "_aligned_malloc" << std::endl;
35 #else
36 std::cout << "C11 aligned_alloc" << std::endl;
37 #endif
38 }
39
40
41 int main(int argc, char** argv)
42 {
43
44 option_list our_options("volk-config-info");
45 our_options.add(
46 option_t("prefix", "", "print the VOLK installation prefix", volk_prefix()));
47 our_options.add(
48 option_t("cc", "", "print the VOLK C compiler version", volk_c_compiler()));
49 our_options.add(
50 option_t("cflags", "", "print the VOLK CFLAGS", volk_compiler_flags()));
51 our_options.add(option_t(
52 "all-machines", "", "print VOLK machines built", volk_available_machines()));
53 our_options.add(option_t("avail-machines",
54 "",
55 "print VOLK machines on the current "
56 "platform",
57 volk_list_machines));
58 our_options.add(option_t("machine",
59 "",
60 "print the current VOLK machine that will be used",
61 volk_get_machine()));
62 our_options.add(
63 option_t("alignment", "", "print the memory alignment", print_alignment));
64 our_options.add(option_t("malloc",
65 "",
66 "print the malloc implementation used in volk_malloc",
67 print_malloc));
68 our_options.add(option_t("version", "v", "print the VOLK version", volk_version()));
69
70 our_options.parse(argc, argv);
71
72 return 0;
73 }
74