cp-tree.h (flag_inline_trees): Update documentation.

* cp-tree.h (flag_inline_trees): Update documentation.
	* decl.c (init_decl_processing): Adjust handling of
	flag_inline_functions and flag_inline_trees to support -O3.
	(grokfndecl): Set DECL_INLINE on all functions if that's what
	the user requested.
	(save_function_data): Clear DECL_INLINE in
	current_function_cannot_inline is non-NULL.
	* decl2.c (flag_inline_trees): Update documentation.

From-SVN: r41822
This commit is contained in:
Mark Mitchell 2001-05-04 03:03:39 +00:00 committed by Mark Mitchell
parent 4091fa5f1b
commit acc72c3774
4 changed files with 35 additions and 10 deletions

View File

@ -1,3 +1,14 @@
2001-05-03 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (flag_inline_trees): Update documentation.
* decl.c (init_decl_processing): Adjust handling of
flag_inline_functions and flag_inline_trees to support -O3.
(grokfndecl): Set DECL_INLINE on all functions if that's what
the user requested.
(save_function_data): Clear DECL_INLINE in
current_function_cannot_inline is non-NULL.
* decl2.c (flag_inline_trees): Update documentation.
2001-05-03 Nathan Sidwell <nathan@codesourcery.com> 2001-05-03 Nathan Sidwell <nathan@codesourcery.com>
* dump.c (cp_dump_tree, USING_STMT case): New case. * dump.c (cp_dump_tree, USING_STMT case): New case.

View File

@ -3445,8 +3445,10 @@ extern int flag_implicit_templates;
extern int flag_weak; extern int flag_weak;
/* Nonzero if we should expand functions calls inline at the tree /* 0 if we should not perform inlining.
level, rather than at the RTL level. */ 1 if we should expand functions calls inline at the tree level.
2 if we should consider *all* functions to be inline
candidates. */
extern int flag_inline_trees; extern int flag_inline_trees;

View File

@ -6365,6 +6365,11 @@ init_decl_processing ()
flag_inline_trees = 1; flag_inline_trees = 1;
flag_no_inline = 1; flag_no_inline = 1;
} }
if (flag_inline_functions)
{
flag_inline_trees = 2;
flag_inline_functions = 0;
}
/* Initially, C. */ /* Initially, C. */
current_lang_name = lang_name_c; current_lang_name = lang_name_c;
@ -6547,10 +6552,6 @@ init_decl_processing ()
if (flag_exceptions) if (flag_exceptions)
init_exception_processing (); init_exception_processing ();
if (flag_no_inline)
{
flag_inline_functions = 0;
}
if (! supports_one_only ()) if (! supports_one_only ())
flag_weak = 0; flag_weak = 0;
@ -8838,8 +8839,13 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
DECL_NOT_REALLY_EXTERN (decl) = 1; DECL_NOT_REALLY_EXTERN (decl) = 1;
} }
/* If the declaration was declared inline, mark it as such. */
if (inlinep) if (inlinep)
DECL_DECLARED_INLINE_P (decl) = DECL_INLINE (decl) = 1; DECL_DECLARED_INLINE_P (decl) = 1;
/* We inline functions that are explicitly declared inline, or, when
the user explicitly asks us to, all functions. */
if (DECL_DECLARED_INLINE_P (decl) || flag_inline_trees == 2)
DECL_INLINE (decl) = 1;
DECL_EXTERNAL (decl) = 1; DECL_EXTERNAL (decl) = 1;
if (quals != NULL_TREE && TREE_CODE (type) == FUNCTION_TYPE) if (quals != NULL_TREE && TREE_CODE (type) == FUNCTION_TYPE)
@ -13771,7 +13777,11 @@ save_function_data (decl)
/* If we've already decided that we cannot inline this function, we /* If we've already decided that we cannot inline this function, we
must remember that fact when we actually go to expand the must remember that fact when we actually go to expand the
function. */ function. */
f->cannot_inline = current_function_cannot_inline; if (current_function_cannot_inline)
{
f->cannot_inline = current_function_cannot_inline;
DECL_INLINE (decl) = 0;
}
} }
/* At the end of every constructor we generate to code to return /* At the end of every constructor we generate to code to return

View File

@ -396,8 +396,10 @@ int flag_use_cxa_atexit;
int flag_honor_std = 1; int flag_honor_std = 1;
/* Nonzero if we should expand functions calls inline at the tree /* 0 if we should not perform inlining.
level, rather than at the RTL level. */ 1 if we should expand functions calls inline at the tree level.
2 if we should consider *all* functions to be inline
candidates. */
int flag_inline_trees = 0; int flag_inline_trees = 0;