aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-05-19 11:36:56 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2017-05-19 09:36:56 +0000
commit9ca8a4c064941ea3495131e36b7710375606b009 (patch)
tree20a036adc3e3ea53cd7e865e5f92d0a53cc3d081 /gcc
parent263e19c786a411cfa647a460cb7a484046195e8c (diff)
downloadgcc-9ca8a4c064941ea3495131e36b7710375606b009.zip
gcc-9ca8a4c064941ea3495131e36b7710375606b009.tar.gz
gcc-9ca8a4c064941ea3495131e36b7710375606b009.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ipa-inline.c4
-rw-r--r--gcc/ipa-inline.h12
3 files changed, 19 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0fc109d..3b700e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
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,
inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
(inline_edge_summary_vec): Turn into ...
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 0238de2..b0d5890 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 14517c0..727cf63 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 *>