This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Allow reporting statistics when current_pass->id is -1


2009/6/3 Andrey Belevantsev <abel@ispras.ru>:
> Hello,
>
> The statistics.c code crashes when trying to record an event during the pass
> which number is -1. ?This doesn't allow reporting statistics for alias
> export when the event gets added rom pass_clean_state. ?Fixed as follows
> (with assert that this would not happen again), bootstrapped and tested on
> x86-64, and it also works with alias export. ?Ok for trunk?

Ok.

Thanks,
Richard.

> Andrey
>
>
> 2009-06-03 ?Andrey Belevantsev ?<abel@ispras.ru>
> ? ?* statistics.c (statistics_counter_event): Do not record event in pass
> ? ?dump if its number == -1.
> ? ?(curr_statistics_hash): Add assert that we never get passes with static
> ? ?number == -1.
>
>
> Index: gcc/statistics.c
> ===================================================================
> *** gcc/statistics.c ? ?(revision 148120)
> --- gcc/statistics.c ? ?(working copy)
> *************** hash_statistics_free (void *p)
> *** 82,88 ****
> ?static htab_t
> ?curr_statistics_hash (void)
> ?{
> ! ? unsigned idx = current_pass->static_pass_number;
>
> ? ?if (idx < nr_statistics_hashes
> ? ? ? ?&& statistics_hashes[idx] != NULL)
> --- 82,91 ----
> ?static htab_t
> ?curr_statistics_hash (void)
> ?{
> ! ? unsigned idx;
> !
> ! ? gcc_assert (current_pass->static_pass_number >= 0);
> ! ? idx = current_pass->static_pass_number;
>
> ? ?if (idx < nr_statistics_hashes
> ? ? ? ?&& statistics_hashes[idx] != NULL)
> *************** statistics_counter_event (struct functio
> *** 294,302 ****
> ? ? ? ?|| incr == 0)
> ? ? ?return;
>
> ! ? counter = lookup_or_add_counter (curr_statistics_hash (), id, 0, false);
> ! ? gcc_assert (!counter->histogram_p);
> ! ? counter->count += incr;
>
> ? ?if (!statistics_dump_file
> ? ? ? ?|| !(statistics_dump_flags & TDF_DETAILS))
> --- 297,308 ----
> ? ? ? ?|| incr == 0)
> ? ? ?return;
>
> ! ? if (current_pass->static_pass_number != -1)
> ! ? ? {
> ! ? ? ? counter = lookup_or_add_counter (curr_statistics_hash (), id, 0,
> false);
> ! ? ? ? gcc_assert (!counter->histogram_p);
> ! ? ? ? counter->count += incr;
> ! ? ? }
>
> ? ?if (!statistics_dump_file
> ? ? ? ?|| !(statistics_dump_flags & TDF_DETAILS))
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]