diff options
author | Richard Guenther <rguenther@suse.de> | 2005-09-01 08:54:40 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2005-09-01 08:54:40 +0000 |
commit | 355866de6545110b8e3e02b6c47447d868235e66 (patch) | |
tree | c2efaa501141cb154f0baf039de17b5444cf03a4 /gcc | |
parent | a1340af76f9d389c82a39326c619c859f634aa04 (diff) | |
download | gcc-355866de6545110b8e3e02b6c47447d868235e66.tar.gz |
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 <rguenther@suse.de>
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/common.opt | 10 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 12 | ||||
-rw-r--r-- | 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 <rguenther@suse.de> + + 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 <jakub@redhat.com> 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"); |