.bad_compare in bootstrap of head

Jan Hubicka hubicka@ucw.cz
Fri May 5 10:37:00 GMT 2017


> On 05/04/2017 08:31 AM, Jeff Law wrote:
> >On 05/04/2017 07:26 AM, Дмитрий Дьяченко wrote:
> >>Fedora 26 x86_64
> >>r247595
> >>
> >>~/src/gcc_current/configure --prefix=/usr/local/gcc_current
> >>--enable-static --enable-checking=no --enable-languages=c,c++,lto
> >>--enable-plugin --disable-multilib
> >And that may be the key, I've been able to get a similar failure.  Could
> >easy be the checking flags.  I'll do some bisecting here.
> >jeff
> 
> It's Jan's patch from April 30.
> 
> commit e062e35c7ff7743aa31868370bf5cb9f8da835dd
> Author: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Sun Apr 30 15:02:11 2017 +0000

I wonder how that patch can cause mismatches. Does it reproduce on one of
compile farm machines (my x86-64 bootstrap works fine so does ia64 on terbium
after fixing the gcc 4.1 issue yeterday).
It would be great to have -fdump-ipa-inline-details dumps of the mismatching
run. Perhaps it will be easy to spot the problem.

Honza

> 
>         PR ipa/79224
>         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
>         (account_size_time): Use two predicates - exec_pred and
>         nonconst_pred_ptr.
>         (evaluate_conditions_for_known_args): Compute both clause and
>         nonspec_clause.
>         (evaluate_properties_for_edge): Evaulate both clause and
> nonspec_clause.
>         (inline_summary_t::duplicate): Update.
>         (estimate_function_body_sizes): Caluculate exec and nonconst
> predicates
>         separately.
>         (compute_inline_parameters): Likewise.
>         (estimate_edge_size_and_time): Update caluclation of time.
>         (estimate_node_size_and_time): Compute both time and nonspecialized
>         time.
>         (estimate_ipcp_clone_size_and_time): Update.
>         (inline_merge_summary): Update.
>         (do_estimate_edge_time): Update.
>         (do_estimate_edge_size): Update.
>         (do_estimate_edge_hints): Update.
>         (inline_read_section, inline_write_summary): Stream both new
> predicates.
>         * ipa-inline.c (compute_uninlined_call_time): Take
> uninlined_call_time
>         as argument.
>         (compute_inlined_call_time): Cleanup.
>         (big_speedup_p): Update.
>         (edge_badness): Update.
>         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
>         (size_time_entry): Replace predicate by exec_predicate and
>         nonconst_predicate.
>         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
>         (estimate_edge_time): Return also nonspec_time.
>         (reset_edge_growth_cache): Update.
> 



More information about the Gcc mailing list