This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: .bad_compare in bootstrap of head
> 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.
>