diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-08 20:54:07 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-08 20:54:07 +0000 |
commit | e8602e56969d864c43ed44dc6b2dc7d4e597a1f6 (patch) | |
tree | f37df892d870d138dc0e3460f96264fd2648883e /gcc/tree-inline.h | |
parent | ca58dfe18f025197cdd785cfcae594ca1da748e4 (diff) | |
download | gcc-e8602e56969d864c43ed44dc6b2dc7d4e597a1f6.tar.gz |
* langhooks.h: New file.
* Makefile.in (OBJS): Added langhooks.o.
(c-lang.o): Depend on langhooks.h.
(c-common.o): Don't depend on tree-inline.h.
(tree-inline.o): Depend on toplev.h.
(langhooks.o): New rule.
* c-common.c: Don't include tree-inline.h.
(c_mark_lang_decl): Mark argument c as unused.
(c_common_lang_init): Don't initialize hooks here.
* c-lang.c: Include langhooks.h, then override some macros.
(lang_hooks): Initialize with macros in langhooks.h.
(c_init): Don't initialize hooks here.
* toplev.c (struct lang_hooks_for_tree_inlining): New struct.
(struct lang_hooks): Add tree_inlining. Refer to langhooks.h.
* tree-inline.c: Include toplev.h. Don't define hook variables.
* tree-inline.h: Don't define hook types nor declare hook
variables. Move macros to...
* langhooks.c: ... new file, as functions. Adjust all callers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46096 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.h')
-rw-r--r-- | gcc/tree-inline.h | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h index 0f36148ab0b..e8bc90a626a 100644 --- a/gcc/tree-inline.h +++ b/gcc/tree-inline.h @@ -32,104 +32,6 @@ tree copy_tree_r PARAMS ((tree*, int*, void*)); void clone_body PARAMS ((tree, tree, void*)); void remap_save_expr PARAMS ((tree*, void*, tree, int*)); -/* LANG_WALK_SUBTREES is called by walk_tree() after handling common - cases, but before walking code-specific sub-trees. If - lang_walk_subtrees is defined for a language, it should handle - language-specific tree codes, as well as language-specific - information associated to common tree codes. If a tree node is - completely handled within this function, it should set *SUBTREES to - 0, so that generic handling isn't attempted. For language-specific - tree codes, generic handling would abort(), so make sure it is set - properly. Both SUBTREES and *SUBTREES is guaranteed to be non-zero - when the function is called. */ - -#define LANG_WALK_SUBTREES(TP,SUBTREES,FUNC,DATA,HTAB) \ - (lang_walk_subtrees \ - ? (*lang_walk_subtrees)((TP),(SUBTREES),(FUNC),(DATA),(HTAB)) \ - : 0) -typedef tree treeopt_walk_subtrees_type PARAMS ((tree*, int*, walk_tree_fn, - void*, void*)); -extern treeopt_walk_subtrees_type *lang_walk_subtrees; - -/* LANG_CANNOT_INLINE_TREE_FN is called to determine whether there are - language-specific reasons for not inlining a given function. */ - -#define LANG_CANNOT_INLINE_TREE_FN(FNP) \ - (lang_cannot_inline_tree_fn ? (*lang_cannot_inline_tree_fn)(FNP) : 0) -typedef int treeopt_cannot_inline_tree_fn_type PARAMS ((tree*)); -extern treeopt_cannot_inline_tree_fn_type *lang_cannot_inline_tree_fn; - -/* LANG_DISREGARD_INLINE_LIMITS is called to determine whether a - function should be inlined even if it would exceed inlining limits. */ - -#define LANG_DISREGARD_INLINE_LIMITS(FN) \ - (lang_disregard_inline_limits ? (*lang_disregard_inline_limits)(FN) : 0) -typedef int treeopt_disregard_inline_limits_type PARAMS ((tree)); -extern treeopt_disregard_inline_limits_type *lang_disregard_inline_limits; - -/* LANG_ADD_PENDING_FN_DECLS is called before starting to inline a - function, to push any language-specific functions that should not - be inlined into the current function, into VAFNP. PFN is the top - of varray, and should be returned if no functions are pushed into - VAFNP. The top of the varray should be returned. */ - -#define LANG_ADD_PENDING_FN_DECLS(VAFNP,PFN) \ - (lang_add_pending_fn_decls \ - ? (*lang_add_pending_fn_decls)((VAFNP),(PFN)) \ - : (PFN)) -typedef tree treeopt_add_pending_fn_decls_type PARAMS ((void*,tree)); -extern treeopt_add_pending_fn_decls_type *lang_add_pending_fn_decls; - -/* LANG_TREE_CHAIN_MATTERS_P indicates whether the TREE_CHAIN of a - language-specific tree node is relevant, i.e., whether it should be - walked, copied and preserved across copies. */ - -#define LANG_TREE_CHAIN_MATTERS_P(T) \ - (lang_tree_chain_matters_p ? (*lang_tree_chain_matters_p)(T) : 0) -typedef int treeopt_tree_chain_matters_p_type PARAMS ((tree)); -extern treeopt_tree_chain_matters_p_type *lang_tree_chain_matters_p; - -/* LANG_AUTO_VAR_IN_FN_P is called to determine whether VT is an - automatic variable defined in function FT. */ - -#define LANG_AUTO_VAR_IN_FN_P(VT,FT) \ - (lang_auto_var_in_fn_p ? (*lang_auto_var_in_fn_p)((VT),(FT)) \ - : (DECL_P (VT) && DECL_CONTEXT (VT) == (FT) \ - && (((TREE_CODE (VT) == VAR_DECL || TREE_CODE (VT) == PARM_DECL) \ - && ! TREE_STATIC (VT)) \ - || TREE_CODE (VT) == LABEL_DECL \ - || TREE_CODE (VT) == RESULT_DECL))) -typedef int treeopt_auto_var_in_fn_p_type PARAMS ((tree,tree)); -extern treeopt_auto_var_in_fn_p_type *lang_auto_var_in_fn_p; - -/* LANG_COPY_RES_DECL_FOR_INLINING should return a declaration for the - result RES of function FN to be inlined into CALLER. NDP points to - an integer that should be set in case a new declaration wasn't - created (presumably because RES was of aggregate type, such that a - TARGET_EXPR is used for the result). TEXPS is a pointer to a - varray with the stack of TARGET_EXPRs seen while inlining functions - into caller; the top of TEXPS is supposed to match RES. */ - -#define LANG_COPY_RES_DECL_FOR_INLINING(RES,FN,CALLER,DM,NDP,TEXPS) \ - (lang_copy_res_decl_for_inlining \ - ? (*lang_copy_res_decl_for_inlining)((RES),(FN),(CALLER),\ - (DM),(NDP),(TEXPS)) \ - : copy_decl_for_inlining ((RES), (FN), (CALLER))) -typedef tree treeopt_copy_res_decl_for_inlining_type PARAMS ((tree, tree, - tree, void*, - int*, void*)); -extern treeopt_copy_res_decl_for_inlining_type -*lang_copy_res_decl_for_inlining; - -/* LANG_ANON_AGGR_TYPE_P determines whether T is a type node - representing an anonymous aggregate (union, struct, etc), i.e., one - whose members are in the same scope as the union itself. */ - -#define LANG_ANON_AGGR_TYPE_P(T) \ - (lang_anon_aggr_type_p ? (*lang_anon_aggr_type_p)(T) : 0) -typedef int treeopt_anon_aggr_type_p PARAMS ((tree)); -extern treeopt_anon_aggr_type_p *lang_anon_aggr_type_p; - /* 0 if we should not perform inlining. 1 if we should expand functions calls inline at the tree level. 2 if we should consider *all* functions to be inline |