diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2000-11-17 17:31:13 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2000-11-17 17:31:13 +0000 |
commit | a8a05998deca5cf6fac99e9a9b6e8343ea3c1b3f (patch) | |
tree | 28ab3f3c8eaffc74f74093a91fbefd178d3d02b5 /gcc/stringpool.c | |
parent | 9e7d5ee8095d41ef744b875de504a22b46f33fb8 (diff) | |
download | gcc-a8a05998deca5cf6fac99e9a9b6e8343ea3c1b3f.zip gcc-a8a05998deca5cf6fac99e9a9b6e8343ea3c1b3f.tar.gz gcc-a8a05998deca5cf6fac99e9a9b6e8343ea3c1b3f.tar.bz2 |
ggc.h: Delete ggc_add_string_root and ggc_mark_string.
* ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
digit_vector and digit_string.
* stringpool.c (digit_vector): New.
(ggc_alloc_string): Use digit_string.
* stmt.c (digit_strings): Delete.
(init_stmt): Do not initialize digit_strings.
(expand_asm_operands): Use ggc.h's digit_string macro.
* toplev.c (mark_file_stack): Delete.
(compile_file): Don't call init_tree_codes.
(main): No need to make the file stack a GC root.
* tree.c (init_tree_codes): Delete.
* tree.h (init_tree_codes): Delete.
* c-lex.c: Don't include ggc.h.
(mark_splay_tree_node, mark_splay_tree): Delete.
(init_c_lex): No need to ggc_strdup string constant. Don't add
file_info_tree to GGC roots.
(cb_enter_file, cb_rename_file): No need to ggc_strdup
ip->nominal_fname.
* Makefile.in (c-lex.o): No longer depends on $(GGC_H).
* dbxout.c (dbxout_init),
dwarf2out.c (dwarf2out_line),
ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
xcoffout.c (xcoffout_source_file),
i386.c (load_pic_register):
Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
* except.c (create_rethrow_ref),
profile.c (init_edge_profiler),
toplev.c (compile_file),
varasm.c (named_section, assemble_static_space,
assemble_trampoline_template, output_constant_def, force_const_mem),
i386.c (load_pic_register),
ia64.c (ia64_encode_section_info),
rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
rs6000_emit_prologue, rs6000_emit_epilogue),
rs6000.md (load_toc_aix_si, load_toc_aix_di):
Change ggc_alloc_string (var, -1) to ggc_strdup (var).
* profile.c (output_func_start_profiler),
tree.c (make_node),
i386.c (load_pic_register): No need to ggc_strdup string constant.
cp:
* lex.c (mark_impl_file_chain): Delete.
(init_parse): Remove call to ggc_add_string_root. No need to
ggc_strdup a string constant. Do not add impl_file_chain to GC
roots.
(handle_pragma_implementation): No need to ggc_strdup main_filename.
f:
* lex.c (ffelex_hash_): Change ggc_alloc_string (var, -1) to
ggc_strdup (var).
java:
* parse.y (goal): Remove call to ggc_add_string_root.
From-SVN: r37522
Diffstat (limited to 'gcc/stringpool.c')
-rw-r--r-- | gcc/stringpool.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/stringpool.c b/gcc/stringpool.c index 32381e0..20db021 100644 --- a/gcc/stringpool.c +++ b/gcc/stringpool.c @@ -40,6 +40,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* The "" allocated string. */ const char empty_string[] = ""; +/* Character strings, each containing a single decimal digit. + Written this way to save space. */ +const char digit_vector[] = { + '0', 0, '1', 0, '2', 0, '3', 0, '4', 0, + '5', 0, '6', 0, '7', 0, '8', 0, '9', 0 +}; + static struct obstack string_stack; /* This is the hash entry associated with each string. It lives in @@ -262,6 +269,8 @@ ggc_alloc_string (contents, length) if (length == 0) return empty_string; + if (length == 1 && contents[0] >= '0' && contents[0] <= '9') + return digit_string (contents[0] - '0'); str = alloc_string (contents, length, INSERT); return str->ptr; |