diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-10-18 05:45:37 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-10-18 05:45:37 +0000 |
commit | 67673f5c5ba19b0012c518faa7aa7e3fc0a494b8 (patch) | |
tree | a423e6df5b432920d8f9fbe1c1a2321d11a04ed2 /gcc | |
parent | 265dab10ab0055accb4959a658f3c907d906b6fe (diff) | |
download | gcc-67673f5c5ba19b0012c518faa7aa7e3fc0a494b8.zip gcc-67673f5c5ba19b0012c518faa7aa7e3fc0a494b8.tar.gz gcc-67673f5c5ba19b0012c518faa7aa7e3fc0a494b8.tar.bz2 |
c-common.c (back_end_hook): New variable.
* c-common.c (back_end_hook): New variable.
* c-common.h (back_end_hook): Declare it.
* c-lang.c (finish_file): Use it.
* emit-rtl.c (init_emit_once): Initialize the const_int_htab
earlier.
* cp-tree.h (back_end_hook): Remove declaration.
* decl2.c (back_end_hook): Remove definition.
* dump.c (dequeue_and_dump): Dump TREE_USED.
From-SVN: r36928
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/c-common.c | 4 | ||||
-rw-r--r-- | gcc/c-common.h | 8 | ||||
-rw-r--r-- | gcc/c-lang.c | 3 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/cp-tree.h | 6 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 5 | ||||
-rw-r--r-- | gcc/cp/dump.c | 3 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 12 |
9 files changed, 40 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24f71be..fc1f8db 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2000-10-17 Mark Mitchell <mark@codesourcery.com> + + * c-common.c (back_end_hook): New variable. + * c-common.h (back_end_hook): Declare it. + * c-lang.c (finish_file): Use it. + + * emit-rtl.c (init_emit_once): Initialize the const_int_htab + earlier. + 2000-10-18 Jan Hubikca <jh@suse.cz> * i386.c (ix86_comparison_operator, put_condition_code, diff --git a/gcc/c-common.c b/gcc/c-common.c index 2fb63fd..72118c8 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -158,6 +158,10 @@ int (*lang_statement_code_p) PARAMS ((enum tree_code)); any action required right before expand_function_end is called. */ void (*lang_expand_function_end) PARAMS ((void)); +/* If this variable is defined to a non-NULL value, it will be called + after the file has been completely parsed. */ +void (*back_end_hook) PARAMS ((tree)); + /* Nonzero means the expression being parsed will never be evaluated. This is a count, since unevaluated expressions can nest. */ int skip_evaluation; diff --git a/gcc/c-common.h b/gcc/c-common.h index 2280b93..a4bd09e 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -697,6 +697,12 @@ extern tree c_add_case_label PARAMS ((splay_tree, extern tree build_function_call PARAMS ((tree, tree)); +/* If this variable is defined to a non-NULL value, it will be called + after the file has been completely parsed. The argument will be + the GLOBAL_NAMESPACE in C++, or the list of top-level declarations + in C. */ +extern void (*back_end_hook) PARAMS ((tree)); + #ifdef RTX_CODE extern struct rtx_def *c_expand_expr PARAMS ((tree, rtx, @@ -720,3 +726,5 @@ struct c_fileinfo *get_fileinfo PARAMS ((const char *)); extern void dump_time_statistics PARAMS ((void)); #endif + + diff --git a/gcc/c-lang.c b/gcc/c-lang.c index 21b8f0f..ab36a2e 100644 --- a/gcc/c-lang.c +++ b/gcc/c-lang.c @@ -242,6 +242,9 @@ finish_file () assemble_destructor (IDENTIFIER_POINTER (fnname)); } #endif + + if (back_end_hook) + (*back_end_hook) (getdecls ()); } /* Called during diagnostic message formatting process to print a diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4246ac6..d4f8e47 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2000-10-17 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (back_end_hook): Remove declaration. + * decl2.c (back_end_hook): Remove definition. + + * dump.c (dequeue_and_dump): Dump TREE_USED. + Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 1a6c518..689c859 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1170,12 +1170,6 @@ extern int flag_access_control; extern int flag_check_new; -/* If this variable is defined to a non-NULL value, it will be called - after the file has been completely parsed. The argument will be - the GLOBAL_NAMESPACE. */ - -extern void (*back_end_hook) PARAMS ((tree)); - /* C++ language-specific tree codes. */ #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM, diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 4f6b57e..fc319b7 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -490,11 +490,6 @@ int flag_permissive; int flag_enforce_eh_specs = 1; -/* If this variable is defined to a non-NULL value, it will be called - after the file has been completely parsed. */ - -void (*back_end_hook) PARAMS ((tree)); - /* The variant of the C language being processed. */ c_language_kind c_language = clk_cplusplus; diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c index 9b71106..83c7db0 100644 --- a/gcc/cp/dump.c +++ b/gcc/cp/dump.c @@ -555,6 +555,9 @@ dequeue_and_dump (di) if (DECL_FIELD_OFFSET (t)) dump_child ("bpos", bit_position (t)); } + else if (TREE_CODE (t) == VAR_DECL + || TREE_CODE (t) == PARM_DECL) + dump_int (di, "used", TREE_USED (t)); break; case FUNCTION_DECL: diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 66b1f7e..3929e88 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -4008,6 +4008,12 @@ init_emit_once (line_numbers) enum machine_mode mode; enum machine_mode double_mode; + /* Initialize the CONST_INT hash table. */ + const_int_htab = htab_create (37, const_int_htab_hash, + const_int_htab_eq, NULL); + ggc_add_root (&const_int_htab, 1, sizeof (const_int_htab), + rtx_htab_mark); + no_line_numbers = ! line_numbers; /* Compute the word and byte modes. */ @@ -4191,12 +4197,6 @@ init_emit_once (line_numbers) ggc_add_rtx_root (&static_chain_rtx, 1); ggc_add_rtx_root (&static_chain_incoming_rtx, 1); ggc_add_rtx_root (&return_address_pointer_rtx, 1); - - /* Initialize the CONST_INT hash table. */ - const_int_htab = htab_create (37, const_int_htab_hash, - const_int_htab_eq, NULL); - ggc_add_root (&const_int_htab, 1, sizeof (const_int_htab), - rtx_htab_mark); } /* Query and clear/ restore no_line_numbers. This is used by the |