OSDN Git Service

* rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 May 2003 21:57:54 +0000 (21:57 +0000)
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 May 2003 21:57:54 +0000 (21:57 +0000)
commit364bde6bf9f3a780897bf947c1a25f7c474b9f0f
tree25c76bfeefa5b878c52eeeb1f17d57eb566eb1a1
parentc04062e9f5efb65a46396ad738d4387de7d3ca82
* rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
* varasm.c (struct varasm_status): Add deferred_constants field.
(n_deferred_strings): Delete variable.
(n_deferred_constants): New #define.
(struct constant_descriptor_tree): Kill next and label fields.
(const_hash_table, MAX_HASH_TABLE): Delete.
(const_desc_htab): New static variable.
(const_hash): Rename const_desc_hash, and make it fit the
hashtab.h interface.
(const_desc_eq): New.
(const_hash_1, compare_constant): Const-ify arguments.
(build_constant_desc): Set DEFERRED_CONSTANT_P on all new
SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
(output_constant_def): Do the lookup/insert using the
hashtab.h interface.  Don't muck with n_deferred_constants or
DEFERRED_CONSTANT_P here.
Always call maybe_output_constant_def_contents.
(maybe_output_constant_def_contents): Take a pointer to the
descriptor, not the EXP and RTL separately.  Return
immediately if this constant is not deferred.  Defer output of
everything, except writable string constants.  Update
n_deferred_constants here.
(output_constant_def_contents): Now takes just one argument,
an rtx.  Clear DEFERRED_CONSTANT_P here.
(mark_constant_pool): Update for rename of n_deferred_strings.
(mark_constant): Don't clear DEFERRED_CONSTANT_P here.

(init_varasm_status): Clear p->deferred_constants.
(init_varasm_once): Call htab_create_ggc for const_desc_htab.

* gcc.dg/const-elim-1.c, gcc.dg/const-elim-2.c: New testcases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66505 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/rtl.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/const-elim-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/const-elim-2.c [new file with mode: 0644]
gcc/varasm.c