From a12f79f5a86fd9eba90acc3d596e42caff53dc4c Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 2 May 2008 13:08:22 +0200 Subject: [PATCH] re PR tree-optimization/36100 (always_inline attribute is broken at -O0) PR bootstrap/36100 * ipa-inline.c (inline_generate_summary): Make static. (inline_transform): Do not call inlining at -O0; make static. * passes.c (execute_todo): Add sanity check. (execute_one_ipa_transform_pass): Execute proper flags. From-SVN: r134885 --- gcc/ChangeLog | 8 ++++++++ gcc/ipa-inline.c | 9 ++------- gcc/passes.c | 8 ++++++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa08080ea1b..28a39b347cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2008-05-01 Jan Hubicka + + PR bootstrap/36100 + * ipa-inline.c (inline_generate_summary): Make static. + (inline_transform): Do not call inlining at -O0; make static. + * passes.c (execute_todo): Add sanity check. + (execute_one_ipa_transform_pass): Execute proper flags. + 2008-05-01 Eric Botcazou * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment. diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index f0a7819cacf..81246d8d1a9 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1560,7 +1560,7 @@ struct gimple_opt_pass pass_inline_parameters = }; /* Note function body size. */ -void +static void inline_generate_summary (struct cgraph_node *node ATTRIBUTE_UNUSED) { compute_inline_parameters (); @@ -1568,17 +1568,12 @@ inline_generate_summary (struct cgraph_node *node ATTRIBUTE_UNUSED) } /* Apply inline plan to function. */ -int +static unsigned int inline_transform (struct cgraph_node *node) { unsigned int todo = 0; struct cgraph_edge *e; - /* Even when not optimizing, ensure that always_inline functions get inlined. - */ - if (!optimize) - cgraph_decide_inlining_incrementally (node, INLINE_SPEED, 0); - /* We might need the body of this function so that we can expand it inline somewhere else. */ if (cgraph_preserve_function_body_p (current_function_decl)) diff --git a/gcc/passes.c b/gcc/passes.c index 196e5a70a71..0ca26fe35a0 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -999,11 +999,15 @@ execute_todo (unsigned int flags) to analyze side effects. The full removal is done just at the end of IPA pass queue. */ if (flags & TODO_remove_functions) - cgraph_remove_unreachable_nodes (true, dump_file); + { + gcc_assert (!cfun); + cgraph_remove_unreachable_nodes (true, dump_file); + } if ((flags & TODO_dump_cgraph) && dump_file && !current_function_decl) { + gcc_assert (!cfun); dump_cgraph (dump_file); /* Flush the file. If verification fails, we won't be able to close the file before aborting. */ @@ -1162,7 +1166,7 @@ execute_one_ipa_transform_pass (struct cgraph_node *node, pass_init_dump_file (pass); /* Run pre-pass verification. */ - execute_todo (pass->todo_flags_start); + execute_todo (ipa_pass->function_transform_todo_flags_start); /* If a timevar is present, start it. */ if (pass->tv_id) -- 2.30.2