diff options
author | Jan Hubicka <jh@suse.cz> | 2006-05-23 02:26:12 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2006-05-23 00:26:12 +0000 |
commit | b633db7b859751e579a2f0d44c6869c2f505beb8 (patch) | |
tree | ea443ea7cda60dcc11a127388746050b3937dc2e /gcc | |
parent | 30df044aeafa4d2af106d094b68c1bda78c89839 (diff) | |
download | gcc-b633db7b859751e579a2f0d44c6869c2f505beb8.zip gcc-b633db7b859751e579a2f0d44c6869c2f505beb8.tar.gz gcc-b633db7b859751e579a2f0d44c6869c2f505beb8.tar.bz2 |
cgraphunit.c (decide_is_function_needed): Also nested functions and functions declared inline can be optimized out at -O0.
* cgraphunit.c (decide_is_function_needed): Also nested functions
and functions declared inline can be optimized out at -O0.
From-SVN: r114008
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27a17e5..988d4f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-05-23 Jan Hubicka <jh@suse.cz> + + * cgraphunit.c (decide_is_function_needed): Also nested functions + and functions declared inline can be optimized out at -O0. + 2006-05-22 Gerald Pfeifer <gerald@pfeifer.com> * doc/install.texi (Configuration): Remove reference to CrossGCC diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 14e4dca..8a4d0ec 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -219,10 +219,14 @@ decide_is_function_needed (struct cgraph_node *node, tree decl) COMDAT functions that must be output only when they are needed. When not optimizing, also output the static functions. (see - PR25962), but don't do so for always_inline functions. - */ + PR25962), but don't do so for always_inline functions, functions + declared inline and nested functions. These was optimized out + in the original implementation and it is unclear whether we want + to change the behaviour here. */ if (((TREE_PUBLIC (decl) - || (!optimize && !node->local.disregard_inline_limits)) + || (!optimize && !node->local.disregard_inline_limits + && !DECL_DECLARED_INLINE_P (decl) + && !node->origin)) && !flag_whole_program) && !DECL_COMDAT (decl) && !DECL_EXTERNAL (decl)) return true; |