> > and way way more (C, Ada, ...). Assuming that the ipa-predicate.[ch] > patch was really only cosmetic, this only leaves your patch in this rev > range. > > Please fix. Hi, I apologize for the breakage. I already commited a fix before lunch but seems my email did not get through. I am attaching it. I amanged to bundle into patch a local change which turn call_stmt_size/time unsigned and confuses one comparsion in want_inline_small_function_p.
Honza * ipa-inline.h (ipa_call_summary): Turn sizes into signed; add ctor. * ipa-inline.c (want_inline_small_function_p): Do not cast to unsigned. Index: ipa-inline.h =================================================================== --- ipa-inline.h (revision 248262) +++ ipa-inline.h (working copy) @@ -189,10 +189,18 @@ struct ipa_call_summary /* Vector indexed by parameters. */ vec<inline_param_summary> param; /* Estimated size and time of the call statement. */ - unsigned int call_stmt_size; - unsigned int call_stmt_time; + int call_stmt_size; + int call_stmt_time; /* Depth of loop nest, 0 means no nesting. */ unsigned int loop_depth; + + /* Keep all field empty so summary dumping works during its computation. + This is useful for debugging. */ + ipa_call_summary () + : predicate (NULL), param (vNULL), call_stmt_size (0), call_stmt_time (0), + loop_depth (0) + { + } }; class ipa_call_summary_t: public call_summary <ipa_call_summary *> Index: ipa-inline.c =================================================================== --- ipa-inline.c (revision 248262) +++ ipa-inline.c (working copy) @@ -723,7 +723,7 @@ want_inline_small_function_p (struct cgr && (!e->count || !e->maybe_hot_p ())) && inline_summaries->get (callee)->min_size - ipa_call_summaries->get (e)->call_stmt_size - > (unsigned)MAX (MAX_INLINE_INSNS_SINGLE, MAX_INLINE_INSNS_AUTO)) + > MAX (MAX_INLINE_INSNS_SINGLE, MAX_INLINE_INSNS_AUTO)) { e->inline_failed = CIF_MAX_INLINE_INSNS_AUTO_LIMIT; want_inline = false; @@ -731,7 +731,7 @@ want_inline_small_function_p (struct cgr else if ((DECL_DECLARED_INLINE_P (callee->decl) || e->count) && inline_summaries->get (callee)->min_size - ipa_call_summaries->get (e)->call_stmt_size - > (unsigned)16 * MAX_INLINE_INSNS_SINGLE) + > 16 * MAX_INLINE_INSNS_SINGLE) { e->inline_failed = (DECL_DECLARED_INLINE_P (callee->decl) ? CIF_MAX_INLINE_INSNS_SINGLE_LIMIT