From 355866de6545110b8e3e02b6c47447d868235e66 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Thu, 1 Sep 2005 08:54:40 +0000 Subject: [PATCH] re PR tree-optimization/15366 ([3.4 only][unit-at-a-time] -fno-inline-functions is ignored for static functions) 2005-09-01 Richard Guenther PR tree-optimization/15366 * common.opt: Add -finline-functions-called-once. Put -fearly-inlining in alphabetically ordered place. * doc/invoke.texi: Document new option. * ipa-inline.c (cgraph_decide_inlining): Honour flag_inline_functions_called_once. From-SVN: r103722 --- gcc/ChangeLog | 9 +++++++++ gcc/common.opt | 10 +++++++--- gcc/doc/invoke.texi | 12 +++++++++++- gcc/ipa-inline.c | 6 ++++-- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b30b116d4f1..62686b0d5e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2005-09-01 Richard Guenther + + PR tree-optimization/15366 + * common.opt: Add -finline-functions-called-once. + Put -fearly-inlining in alphabetically ordered place. + * doc/invoke.texi: Document new option. + * ipa-inline.c (cgraph_decide_inlining): Honour + flag_inline_functions_called_once. + 2005-09-01 Jakub Jelinek PR rtl-optimization/23478 diff --git a/gcc/common.opt b/gcc/common.opt index 04a8ac03a0a..d7a7a2d67be 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -359,6 +359,10 @@ fdump-unnumbered Common Report Var(flag_dump_unnumbered) VarExists Suppress output of instruction numbers and line number notes in debugging dumps +fearly-inlining +Common Report Var(flag_early_inlining) Init(1) +Perform early inlining + feliminate-dwarf2-dups Common Report Var(flag_eliminate_dwarf2_dups) Perform DWARF2 duplicate elimination @@ -480,9 +484,9 @@ finline-functions Common Report Var(flag_inline_functions) Integrate simple functions into their callers -fearly-inlining -Common Report Var(flag_early_inlining) Init(1) -Perform early inlining +finline-functions-called-once +Common Report Var(flag_inline_functions_called_once) Init(1) +Integrate functions called once into their callers finline-limit- Common RejectNegative Joined UInteger diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index d31e77b467a..7328e9a0e6d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -306,7 +306,8 @@ Objective-C and Objective-C++ Dialects}. -fforce-addr -ffunction-sections @gol -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fgcse-after-reload @gol -floop-optimize -fcrossjumping -fif-conversion -fif-conversion2 @gol --finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol +-finline-functions -finline-functions-called-once @gol +-finline-limit=@var{n} -fkeep-inline-functions @gol -fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol -fmodulo-sched -fno-branch-count-reg @gol -fno-default-inline -fno-defer-pop -floop-optimize2 -fmove-loop-invariants @gol @@ -4480,6 +4481,15 @@ assembler code in its own right. Enabled at level @option{-O3}. +@item -finline-functions-called-once +@opindex finline-functions-called-once +Consider all @code{static} functions called once for inlining into their +caller even if they are not marked @code{inline}. If a call to a given +function is integrated, then the function is not output as assembler code +in its own right. + +Enabled if @option{-funit-at-a-time} is enabled. + @item -fearly-inlining @opindex fearly-inlining Inline functions marked by @code{always_inline} and functions whose body seems diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 0c6dc99aecc..927813e2d74 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -944,9 +944,11 @@ cgraph_decide_inlining (void) } if (!flag_really_no_inline) - { - cgraph_decide_inlining_of_small_functions (); + cgraph_decide_inlining_of_small_functions (); + if (!flag_really_no_inline + && flag_inline_functions_called_once) + { if (dump_file) fprintf (dump_file, "\nDeciding on functions called once:\n"); -- 2.30.2