aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2000-10-18 05:45:37 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-10-18 05:45:37 +0000
commit67673f5c5ba19b0012c518faa7aa7e3fc0a494b8 (patch)
treea423e6df5b432920d8f9fbe1c1a2321d11a04ed2 /gcc
parent265dab10ab0055accb4959a658f3c907d906b6fe (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--gcc/c-common.c4
-rw-r--r--gcc/c-common.h8
-rw-r--r--gcc/c-lang.c3
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/cp-tree.h6
-rw-r--r--gcc/cp/decl2.c5
-rw-r--r--gcc/cp/dump.c3
-rw-r--r--gcc/emit-rtl.c12
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