Commit acc72c37 by Mark Mitchell Committed by Mark Mitchell

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
parent 4091fa5f
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.
......
...@@ -3445,8 +3445,10 @@ extern int flag_implicit_templates; ...@@ -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;
......
...@@ -6365,6 +6365,11 @@ init_decl_processing () ...@@ -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 () ...@@ -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, ...@@ -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) ...@@ -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
......
...@@ -396,8 +396,10 @@ int flag_use_cxa_atexit; ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment