diff options
Diffstat (limited to 'gcc/value-prof.h')
-rw-r--r-- | gcc/value-prof.h | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/gcc/value-prof.h b/gcc/value-prof.h index b9d0d0663b2..7742de2fab6 100644 --- a/gcc/value-prof.h +++ b/gcc/value-prof.h @@ -38,14 +38,25 @@ enum hist_type ((enum hist_type) ((COUNTER) - GCOV_FIRST_VALUE_COUNTER)) /* The value to measure. */ -/* The void *'s are either rtx or tree, depending on which IR is in use. */ -struct histogram_value_t GTY(()) +struct histogram_value_t { - PTR GTY ((skip (""))) value; /* The value to profile. */ - enum machine_mode mode; /* And its mode. */ - PTR GTY ((skip (""))) seq; /* Insns required to count the - profiled value. */ - PTR GTY ((skip (""))) insn; /* Insn before that to measure. */ + union + { + struct + { + rtx value; /* The value to profile. */ + rtx seq; /* Insns required to count the profiled value. */ + rtx insn; /* Insn before that to measure. */ + enum machine_mode mode; /* Mode of value to profile. */ + } rtl; + struct + { + tree value; /* The value to profile. */ + tree stmt; /* Insn containing the value. */ + gcov_type *counters; /* Pointer to first counter. */ + struct histogram_value_t *next; /* Linked list pointer. */ + } tree; + } hvalue; enum hist_type type; /* Type of information to measure. */ unsigned n_counters; /* Number of required counters. */ union @@ -53,9 +64,7 @@ struct histogram_value_t GTY(()) struct { int int_start; /* First value in interval. */ - int steps; /* Number of values in it. */ - int may_be_less; /* May the value be below? */ - int may_be_more; /* Or above. */ + unsigned int steps; /* Number of values in it. */ } intvl; /* Interval histogram data. */ struct { @@ -66,7 +75,7 @@ struct histogram_value_t GTY(()) typedef struct histogram_value_t *histogram_value; -DEF_VEC_GC_P(histogram_value); +DEF_VEC_MALLOC_P(histogram_value); typedef VEC(histogram_value) *histogram_values; |