2001-10-05 04:49:16 +02:00
|
|
|
/* Tree inlining hooks and declarations.
|
builtin-types.def, [...]: Update copyright.
* builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
tree-profile.c, tsystem.h, value-prof.h: Update copyright.
From-SVN: r97209
2005-03-30 00:15:53 +02:00
|
|
|
Copyright 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
|
2001-10-05 04:49:16 +02:00
|
|
|
Contributed by Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
2003-03-13 04:51:01 +01:00
|
|
|
This file is part of GCC.
|
2001-10-05 04:49:16 +02:00
|
|
|
|
2003-03-13 04:51:01 +01:00
|
|
|
GCC is free software; you can redistribute it and/or modify
|
2001-10-05 04:49:16 +02:00
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
any later version.
|
|
|
|
|
2003-03-13 04:51:01 +01:00
|
|
|
GCC is distributed in the hope that it will be useful,
|
2001-10-05 04:49:16 +02:00
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2003-03-13 04:51:01 +01:00
|
|
|
along with GCC; see the file COPYING. If not, write to
|
2005-06-25 04:02:01 +02:00
|
|
|
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
|
|
|
Boston, MA 02110-1301, USA. */
|
2001-10-05 04:49:16 +02:00
|
|
|
|
|
|
|
#ifndef GCC_TREE_INLINE_H
|
|
|
|
#define GCC_TREE_INLINE_H
|
|
|
|
|
2005-08-01 09:47:25 +02:00
|
|
|
#include "varray.h"
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
#include "splay-tree.h"
|
|
|
|
|
|
|
|
|
|
|
|
/* Data required for function body duplication. */
|
|
|
|
|
|
|
|
typedef struct copy_body_data
|
|
|
|
{
|
|
|
|
/* FUNCTION_DECL for function being inlined, or in general the
|
|
|
|
source function providing the original trees. */
|
|
|
|
tree src_fn;
|
|
|
|
/* FUNCTION_DECL for function being inlined into, or in general
|
|
|
|
the destination function receiving the new trees. */
|
|
|
|
tree dst_fn;
|
|
|
|
/* Callgraph node of the source function. */
|
|
|
|
struct cgraph_node *src_node;
|
|
|
|
/* Callgraph node of the destination function. */
|
|
|
|
struct cgraph_node *dst_node;
|
|
|
|
/* struct function for function being inlined. Usually this is the same
|
|
|
|
as DECL_STRUCT_FUNCTION (src_fn), but can be different if saved_cfg
|
|
|
|
and saved_eh are in use. */
|
|
|
|
struct function *src_cfun;
|
|
|
|
|
|
|
|
/* The VAR_DECL for the return value. */
|
|
|
|
tree retvar;
|
|
|
|
/* The map from local declarations in the inlined function to
|
|
|
|
equivalents in the function into which it is being inlined. */
|
|
|
|
splay_tree decl_map;
|
|
|
|
|
|
|
|
/* Create a new decl to replace DECL in the destination function. */
|
|
|
|
tree (*copy_decl) (tree, struct copy_body_data *);
|
|
|
|
|
|
|
|
/* Current BLOCK. */
|
|
|
|
tree block;
|
|
|
|
|
|
|
|
/* Exception region the inlined call lie in. */
|
|
|
|
int eh_region;
|
|
|
|
/* Take region number in the function being copied, add this value and
|
|
|
|
get eh region number of the duplicate in the function we inline into. */
|
|
|
|
int eh_region_offset;
|
|
|
|
|
|
|
|
/* We use the same mechanism do all sorts of different things. Rather
|
builtins.c, [...]: Fix comment typos.
* builtins.c, config/arm/arm.c, config/i386/cygwin.h,
config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
spelling convensions.
* config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
typos. Follow spelling conventions.
From-SVN: r112782
2006-04-08 19:01:17 +02:00
|
|
|
than enumerating the different cases, we categorize the behavior
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
in the various situations. */
|
|
|
|
|
builtins.c, [...]: Fix comment typos.
* builtins.c, config/arm/arm.c, config/i386/cygwin.h,
config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
spelling convensions.
* config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
typos. Follow spelling conventions.
From-SVN: r112782
2006-04-08 19:01:17 +02:00
|
|
|
/* Indicate the desired behavior wrt call graph edges. We can either
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
duplicate the edge (inlining, cloning), move the edge (versioning,
|
|
|
|
parallelization), or move the edges of the clones (saving). */
|
|
|
|
enum copy_body_cge_which {
|
|
|
|
CB_CGE_DUPLICATE,
|
|
|
|
CB_CGE_MOVE,
|
|
|
|
CB_CGE_MOVE_CLONES
|
|
|
|
} transform_call_graph_edges;
|
|
|
|
|
|
|
|
/* True if a new CFG should be created. False for inlining, true for
|
|
|
|
everything else. */
|
|
|
|
bool transform_new_cfg;
|
|
|
|
|
|
|
|
/* True if RETURN_EXPRs should be transformed to just the contained
|
|
|
|
MODIFY_EXPR. The branch semantics of the return will be handled
|
|
|
|
by manipulating the CFG rather than a statement. */
|
|
|
|
bool transform_return_to_modify;
|
|
|
|
|
|
|
|
/* True if lang_hooks.decls.insert_block should be invoked when
|
|
|
|
duplicating BLOCK nodes. */
|
|
|
|
bool transform_lang_insert_block;
|
2007-01-04 09:56:05 +01:00
|
|
|
|
|
|
|
/* Statements that might be possibly folded. */
|
|
|
|
struct pointer_set_t *statements_to_fold;
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
} copy_body_data;
|
|
|
|
|
2001-10-05 04:49:16 +02:00
|
|
|
/* Function prototypes. */
|
|
|
|
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
extern tree copy_body_r (tree *, int *, void *);
|
|
|
|
extern void insert_decl_map (copy_body_data *, tree, tree);
|
|
|
|
|
2003-07-06 14:35:56 +02:00
|
|
|
void optimize_inline_calls (tree);
|
2003-08-05 16:11:53 +02:00
|
|
|
bool tree_inlinable_function_p (tree);
|
2004-07-28 04:27:20 +02:00
|
|
|
tree copy_tree_r (tree *, int *, void *);
|
|
|
|
void clone_body (tree, tree, void *);
|
cgraph.h (cgraph_node): Add 'lowered' state.
* cgraph.h (cgraph_node): Add 'lowered' state.
(cgraph_lower_function): Declare.
* cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
(cgraph_lower_function): New function.
(cgraph_create_edges): Deal with lowered function bodies.
(verify_cgraph_node): Likewise.
(cgraph_analyze_function): Do lowering job.
(cgraph_build_static_cdtor): Likewise.
* function.h (struct function): Add saved_eh and saved_cfg.
* integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
* tree-cfg.c (fold_cond_expr_cond): Export.
* tree-flow.h (fold_cond_expr_cond): Declare.
* tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
pointer-set.
(struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
callee_cfun, block, eh_region, eh_region_offset.
(inlining_p): New predicate.
(remap_decl): Update for new inline_data; declare newly created inline
vars in low gimple way.
(copy_body_r): Update for new datastructure, simplify some of handling
when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
deal with RESX_EXPRs.
(copy_bb): New.
(copy_edges_for_bb): Likewise.
(remap_decl_1): New.
(copy_cfg_body): New.
(copy_generic_body): Rewrite to work on low gimple.
(copy_body): Turn into simple wrapper around copy_cfg_body.
(setup_one_parameter): Insert new statements into given basic block.
(initialize_initialized_parameters): Likewise, reorganize way things are
gimplified.
(declare_return_variable): Update for new inline data datastructure.
(inline_forbidden_p): Work on low gimple.
(estimate_num_insns): Likewise.
(expand_call_inline): Work on CFG.
(push_cfun, pop_cfun): New functions.
(cfun_stack): New stack.
(add_lexical_block): New function.
(gimple_expand_calls_inline): Work on basic block.
(optimize_inline_calls): Likewise.
(clone_body, save_body, unsave_ewpr_now): Update for new
datastructures.
(declare_inline_vars): Work on block instead of bind_expr.
(inlining_p): New predicate.
* tree-inline.h (push_cfun, pop_cfun): Declare.
* tree-optimize.c: Include except.h
(all_lowering_passes): New variable.
(execute_fixup_cfg, pass_fixup_cfg): New pass.
(init_tree_optimization_passes): Move some to all_lowering_passes.
(tree_lowering_passes): New function.
(tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
Co-Authored-By: Dale Johannesen <dalej@apple.com>
Co-Authored-By: Jan Hubicka <jh@suse.cz>
Co-Authored-By: Stuart Hastings <stuart@apple.com>
From-SVN: r99840
2005-05-17 18:56:32 +02:00
|
|
|
void save_body (tree, tree *, tree *);
|
2005-03-22 21:53:40 +01:00
|
|
|
int estimate_move_cost (tree type);
|
cgraph.h (cgraph_node): Add 'lowered' state.
* cgraph.h (cgraph_node): Add 'lowered' state.
(cgraph_lower_function): Declare.
* cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
(cgraph_lower_function): New function.
(cgraph_create_edges): Deal with lowered function bodies.
(verify_cgraph_node): Likewise.
(cgraph_analyze_function): Do lowering job.
(cgraph_build_static_cdtor): Likewise.
* function.h (struct function): Add saved_eh and saved_cfg.
* integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
* tree-cfg.c (fold_cond_expr_cond): Export.
* tree-flow.h (fold_cond_expr_cond): Declare.
* tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
pointer-set.
(struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
callee_cfun, block, eh_region, eh_region_offset.
(inlining_p): New predicate.
(remap_decl): Update for new inline_data; declare newly created inline
vars in low gimple way.
(copy_body_r): Update for new datastructure, simplify some of handling
when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
deal with RESX_EXPRs.
(copy_bb): New.
(copy_edges_for_bb): Likewise.
(remap_decl_1): New.
(copy_cfg_body): New.
(copy_generic_body): Rewrite to work on low gimple.
(copy_body): Turn into simple wrapper around copy_cfg_body.
(setup_one_parameter): Insert new statements into given basic block.
(initialize_initialized_parameters): Likewise, reorganize way things are
gimplified.
(declare_return_variable): Update for new inline data datastructure.
(inline_forbidden_p): Work on low gimple.
(estimate_num_insns): Likewise.
(expand_call_inline): Work on CFG.
(push_cfun, pop_cfun): New functions.
(cfun_stack): New stack.
(add_lexical_block): New function.
(gimple_expand_calls_inline): Work on basic block.
(optimize_inline_calls): Likewise.
(clone_body, save_body, unsave_ewpr_now): Update for new
datastructures.
(declare_inline_vars): Work on block instead of bind_expr.
(inlining_p): New predicate.
* tree-inline.h (push_cfun, pop_cfun): Declare.
* tree-optimize.c: Include except.h
(all_lowering_passes): New variable.
(execute_fixup_cfg, pass_fixup_cfg): New pass.
(init_tree_optimization_passes): Move some to all_lowering_passes.
(tree_lowering_passes): New function.
(tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
Co-Authored-By: Dale Johannesen <dalej@apple.com>
Co-Authored-By: Jan Hubicka <jh@suse.cz>
Co-Authored-By: Stuart Hastings <stuart@apple.com>
From-SVN: r99840
2005-05-17 18:56:32 +02:00
|
|
|
void push_cfun (struct function *new_cfun);
|
|
|
|
void pop_cfun (void);
|
2004-05-13 08:41:07 +02:00
|
|
|
int estimate_num_insns (tree expr);
|
2005-08-01 09:47:25 +02:00
|
|
|
bool tree_versionable_function_p (tree);
|
2006-01-11 14:13:37 +01:00
|
|
|
void tree_function_versioning (tree, tree, varray_type, bool);
|
2005-08-01 09:47:25 +02:00
|
|
|
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
extern tree remap_decl (tree decl, copy_body_data *id);
|
|
|
|
extern tree remap_type (tree type, copy_body_data *id);
|
2001-10-05 04:49:16 +02:00
|
|
|
|
2006-11-28 11:53:16 +01:00
|
|
|
extern HOST_WIDE_INT estimated_stack_frame_size (void);
|
|
|
|
|
2001-10-05 04:49:16 +02:00
|
|
|
/* 0 if we should not perform inlining.
|
2002-06-01 00:15:42 +02:00
|
|
|
1 if we should expand functions calls inline at the tree level.
|
|
|
|
2 if we should consider *all* functions to be inline
|
2001-10-05 04:49:16 +02:00
|
|
|
candidates. */
|
|
|
|
|
|
|
|
extern int flag_inline_trees;
|
|
|
|
|
|
|
|
#endif /* GCC_TREE_INLINE_H */
|