> 
> 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

Reply via email to