OSDN Git Service

2005-09-01 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Sep 2005 08:54:40 +0000 (08:54 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Sep 2005 08:54:40 +0000 (08:54 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103722 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/ipa-inline.c

index b30b116..62686b0 100644 (file)
@@ -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
index 04a8ac0..d7a7a2d 100644 (file)
@@ -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
index d31e77b..7328e9a 100644 (file)
@@ -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
index 0c6dc99..927813e 100644 (file)
@@ -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");