From 9ca8a4c064941ea3495131e36b7710375606b009 Mon Sep 17 00:00:00 2001
From: Jan Hubicka <hubicka@ucw.cz>
Date: Fri, 19 May 2017 11:36:56 +0200
Subject: [PATCH] ipa-inline.h (ipa_call_summary): Turn sizes into signed; add
 ctor.

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

From-SVN: r248263
---
 gcc/ChangeLog    |  7 +++++++
 gcc/ipa-inline.c |  4 ++--
 gcc/ipa-inline.h | 12 ++++++++++--
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0fc109dc783d..3b700e0f1eda 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
+
+	* 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.
+
 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
 
 	* ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 0238de2dac8e..b0d589081d8d 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -723,7 +723,7 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report)
 	   && (!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 cgraph_edge *e, bool report)
   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
diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h
index 14517c029fb4..727cf63e10a7 100644
--- a/gcc/ipa-inline.h
+++ b/gcc/ipa-inline.h
@@ -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 *>
-- 
GitLab