|
| 1 | +/* Definitions for the gcov counters in the GNU compiler. |
| 2 | + Copyright (C) 2001-2015 Free Software Foundation, Inc. |
| 3 | + |
| 4 | +This file is part of GCC. |
| 5 | + |
| 6 | +GCC is free software; you can redistribute it and/or modify it under |
| 7 | +the terms of the GNU General Public License as published by the Free |
| 8 | +Software Foundation; either version 3, or (at your option) any later |
| 9 | +version. |
| 10 | + |
| 11 | +GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
| 12 | +WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 13 | +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| 14 | +for more details. |
| 15 | + |
| 16 | +You should have received a copy of the GNU General Public License |
| 17 | +along with GCC; see the file COPYING3. If not see |
| 18 | +<http://www.gnu.org/licenses/>. */ |
| 19 | + |
| 20 | +/* Before including this file, define a macro: |
| 21 | + |
| 22 | + DEF_GCOV_COUNTER(COUNTER, NAME, FN_TYPE) |
| 23 | + |
| 24 | + This macro will be expanded to all supported gcov counters, their |
| 25 | + names, or the type of handler functions. FN_TYPE will be |
| 26 | + expanded to a handler function, like in gcov_merge, it is |
| 27 | + expanded to __gcov_merge ## FN_TYPE. */ |
| 28 | + |
| 29 | +/* Arc transitions. */ |
| 30 | +DEF_GCOV_COUNTER(GCOV_COUNTER_ARCS, "arcs", _add) |
| 31 | + |
| 32 | +/* Histogram of value inside an interval. */ |
| 33 | +DEF_GCOV_COUNTER(GCOV_COUNTER_V_INTERVAL, "interval", _add) |
| 34 | + |
| 35 | +/* Histogram of exact power2 logarithm of a value. */ |
| 36 | +DEF_GCOV_COUNTER(GCOV_COUNTER_V_POW2, "pow2", _add) |
| 37 | + |
| 38 | +/* The most common value of expression. */ |
| 39 | +DEF_GCOV_COUNTER(GCOV_COUNTER_V_SINGLE, "single", _single) |
| 40 | + |
| 41 | +/* The most common difference between consecutive values of expression. */ |
| 42 | +DEF_GCOV_COUNTER(GCOV_COUNTER_V_DELTA, "delta", _delta) |
| 43 | + |
| 44 | +/* The most common indirect address. */ |
| 45 | +DEF_GCOV_COUNTER(GCOV_COUNTER_V_INDIR, "indirect_call", _single) |
| 46 | + |
| 47 | +/* Compute average value passed to the counter. */ |
| 48 | +DEF_GCOV_COUNTER(GCOV_COUNTER_AVERAGE, "average", _add) |
| 49 | + |
| 50 | +/* IOR of the all values passed to counter. */ |
| 51 | +DEF_GCOV_COUNTER(GCOV_COUNTER_IOR, "ior", _ior) |
| 52 | + |
| 53 | +/* Time profile collecting first run of a function */ |
| 54 | +DEF_GCOV_COUNTER(GCOV_TIME_PROFILER, "time_profiler", _time_profile) |
| 55 | + |
| 56 | +/* Top N value tracking for indirect calls. */ |
| 57 | +DEF_GCOV_COUNTER(GCOV_COUNTER_ICALL_TOPNV, "indirect_call_topn", _icall_topn) |
0 commit comments