summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2005-09-01 08:54:40 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2005-09-01 08:54:40 +0000
commit355866de6545110b8e3e02b6c47447d868235e66 (patch)
treec2efaa501141cb154f0baf039de17b5444cf03a4 /gcc
parenta1340af76f9d389c82a39326c619c859f634aa04 (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--gcc/common.opt10
-rw-r--r--gcc/doc/invoke.texi12
-rw-r--r--gcc/ipa-inline.c6
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");