diff options
author | Richard Henderson <rth@redhat.com> | 2003-08-29 16:21:13 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-08-29 16:21:13 -0700 |
commit | 4985cde3ef44391a43fd95c0972bf72c86e127cb (patch) | |
tree | d3ecf1a361ca516453ed6172c096bc2f280d5875 /gcc/cp/optimize.c | |
parent | fc2b84778bb51750c841f53b1ba30950935cc901 (diff) | |
download | gcc-4985cde3ef44391a43fd95c0972bf72c86e127cb.zip gcc-4985cde3ef44391a43fd95c0972bf72c86e127cb.tar.gz gcc-4985cde3ef44391a43fd95c0972bf72c86e127cb.tar.bz2 |
tree-optimize.c: New file.
gcc/
* tree-optimize.c: New file.
* Makefile.in (OBJS-archive): Add tree-optimize.o.
(tree-optimize.o): New.
* c-decl.c (store_parm_decls): Use allocate_struct_function.
(finish_function): Don't free_after_parsing or free_after_compilation.
(set_save_expr_context): Move to tree-optimize.c.
(c_expand_body_1): Use tree_rest_of_compilation.
* c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
* objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
* c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
iterate until closure.
* langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
(LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
* langhooks.h (struct lang_hooks_for_rtl_expansion): New.
* toplev.h (tree_rest_of_compilation): Declare it.
gcc/cp/
* cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New.
(LANG_HOOKS_RTL_EXPAND_STMT): New.
* cp-tree.h (cxx_expand_function_start): Declare.
* decl.c (start_function): Use allocate_struct_function.
Move stmts_are_full_exprs_p assertion from expand_body.
Do not free_after_parsing or free_after_compilation.
(cxx_push_function_context): Move code to set struct function
data from genrtl_start_function.
* optimize.c (optimize_function): Don't inc/dec function_depth.
* semantics.c (expand_body): Use tree_rest_of_compilation.
(cxx_expand_function_start): Rename from genrtl_start_function,
omit bits done by tree_rest_of_compilation.
(genrtl_finish_function): Remove.
(clear_decl_rtl): Move to ../tree-optimize.c.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r70933
Diffstat (limited to 'gcc/cp/optimize.c')
-rw-r--r-- | gcc/cp/optimize.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index 4cb5c69..8c604e3 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -49,17 +49,6 @@ optimize_function (tree fn) { dump_function (TDI_original, fn); - /* While in this function, we may choose to go off and compile - another function. For example, we might instantiate a function - in the hopes of inlining it. Normally, that wouldn't trigger any - actual RTL code-generation -- but it will if the template is - actually needed. (For example, if it's address is taken, or if - some other function already refers to the template.) If - code-generation occurs, then garbage collection will occur, so we - must protect ourselves, just as we do while building up the body - of the function. */ - ++function_depth; - if (flag_inline_trees /* We do not inline thunks, as (a) the backend tries to optimize the call to the thunkee, (b) tree based inlining breaks that @@ -72,9 +61,6 @@ optimize_function (tree fn) dump_function (TDI_inlined, fn); } - /* Undo the call to ggc_push_context above. */ - --function_depth; - dump_function (TDI_optimized, fn); } |