Commit 67673f5c by Mark Mitchell Committed by Mark Mitchell

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
parent 265dab10
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> 2000-10-18 Jan Hubikca <jh@suse.cz>
* i386.c (ix86_comparison_operator, put_condition_code, * i386.c (ix86_comparison_operator, put_condition_code,
......
...@@ -158,6 +158,10 @@ int (*lang_statement_code_p) PARAMS ((enum tree_code)); ...@@ -158,6 +158,10 @@ int (*lang_statement_code_p) PARAMS ((enum tree_code));
any action required right before expand_function_end is called. */ any action required right before expand_function_end is called. */
void (*lang_expand_function_end) PARAMS ((void)); 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. /* Nonzero means the expression being parsed will never be evaluated.
This is a count, since unevaluated expressions can nest. */ This is a count, since unevaluated expressions can nest. */
int skip_evaluation; int skip_evaluation;
......
...@@ -697,6 +697,12 @@ extern tree c_add_case_label PARAMS ((splay_tree, ...@@ -697,6 +697,12 @@ extern tree c_add_case_label PARAMS ((splay_tree,
extern tree build_function_call PARAMS ((tree, 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 #ifdef RTX_CODE
extern struct rtx_def *c_expand_expr PARAMS ((tree, rtx, extern struct rtx_def *c_expand_expr PARAMS ((tree, rtx,
...@@ -720,3 +726,5 @@ struct c_fileinfo *get_fileinfo PARAMS ((const char *)); ...@@ -720,3 +726,5 @@ struct c_fileinfo *get_fileinfo PARAMS ((const char *));
extern void dump_time_statistics PARAMS ((void)); extern void dump_time_statistics PARAMS ((void));
#endif #endif
...@@ -242,6 +242,9 @@ finish_file () ...@@ -242,6 +242,9 @@ finish_file ()
assemble_destructor (IDENTIFIER_POINTER (fnname)); assemble_destructor (IDENTIFIER_POINTER (fnname));
} }
#endif #endif
if (back_end_hook)
(*back_end_hook) (getdecls ());
} }
/* Called during diagnostic message formatting process to print a /* Called during diagnostic message formatting process to print a
......
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> 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). * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
......
...@@ -1170,12 +1170,6 @@ extern int flag_access_control; ...@@ -1170,12 +1170,6 @@ extern int flag_access_control;
extern int flag_check_new; 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. */ /* C++ language-specific tree codes. */
#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM, #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM,
......
...@@ -490,11 +490,6 @@ int flag_permissive; ...@@ -490,11 +490,6 @@ int flag_permissive;
int flag_enforce_eh_specs = 1; 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. */ /* The variant of the C language being processed. */
c_language_kind c_language = clk_cplusplus; c_language_kind c_language = clk_cplusplus;
......
...@@ -555,6 +555,9 @@ dequeue_and_dump (di) ...@@ -555,6 +555,9 @@ dequeue_and_dump (di)
if (DECL_FIELD_OFFSET (t)) if (DECL_FIELD_OFFSET (t))
dump_child ("bpos", bit_position (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; break;
case FUNCTION_DECL: case FUNCTION_DECL:
......
...@@ -4008,6 +4008,12 @@ init_emit_once (line_numbers) ...@@ -4008,6 +4008,12 @@ init_emit_once (line_numbers)
enum machine_mode mode; enum machine_mode mode;
enum machine_mode double_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; no_line_numbers = ! line_numbers;
/* Compute the word and byte modes. */ /* Compute the word and byte modes. */
...@@ -4191,12 +4197,6 @@ init_emit_once (line_numbers) ...@@ -4191,12 +4197,6 @@ init_emit_once (line_numbers)
ggc_add_rtx_root (&static_chain_rtx, 1); ggc_add_rtx_root (&static_chain_rtx, 1);
ggc_add_rtx_root (&static_chain_incoming_rtx, 1); ggc_add_rtx_root (&static_chain_incoming_rtx, 1);
ggc_add_rtx_root (&return_address_pointer_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 /* Query and clear/ restore no_line_numbers. This is used by the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment