diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-13 06:26:46 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-13 06:26:46 +0000 |
commit | d7c47c0ef0309b9b24b450072b3fbbebf52f7b5a (patch) | |
tree | cd4e3b39aeeef559afdffecc5526c482b9b80b01 /gcc/config | |
parent | a2d421410ebac81ab3d874b79c72fc1d6dc2d60c (diff) | |
download | gcc-d7c47c0ef0309b9b24b450072b3fbbebf52f7b5a.tar.gz |
Remove obstacks.
* Makefile.in (ggc-callbacks.o): Remove target.
(flow.o): Depend on GGC_H.
* alias.c (init_alias_analysis):
Remove ggc_p conditionals.
(end_alias_analysis): Likewise.
* basic-block.h (init_flow): New function.
(allocate_reg_life_data): Declare.
* bb-reorder.c (function_obstack): Replace with ...
(flow_obstack): ... new variable.
(fixup_reorder_chain): Use it.
* c-decl.c (ggc_p): Remove.
(caller-save.c): Don't call oballoc/obfree.
* combine.c (struct
undobuf): Remove storage.
(try_combine): Don't call oballoc.
(undo_all): Don't call obfree.
* cse.c (insert): Use xmalloc, not
oballoc.
(cse_main): Adjust accordingly.
* dwarf2out.c (save_rtx): Remove
obstack code.
(dwarf2out_init): Remove ggc_p conditionals.
* emit-rtl.c (rtl_obstack): Remove.
(gen_rtx_CONST_INT): Remove ggc_p conditionals.
(make_insn_raw): Likewise.
(emit_insn_before): Likewise.
(emit_insn_after): Likewise.
(emit_insn): Likewise.
(gen_sequence): Likewise.
(copy_insn_1): Remove handling of `b' RTL components.
(init_emit_once): Remove ggc_p conditionals.
* except.c (create_rethrow_ref): Don't fool with obstacks.
(add_partial_entry): Likewise.
(call_get_eh_context): Likewise.
(begin_protect_partials): Likewise.
(protect_with_terminate): Likewise.
* explow.c
(plus_constant_wide): Likewise.
* expr.c (init_expr_once):
Likewise.
(emit_block_move): Likewise.
(clear_storage): Likewise.
(expand_expr): Likewise.
* flow.c (function_obstack): Remove.
(flow_obstack): New variable.
(flow_firstobj): Likewise.
(create_base_block): Use the flow_obstack.
(split_block): Likewise.
(split_edge): Likewise.
(calculate_global_regs_live): Likewise.
(allocate_bb_life_data): Make it static. Likewiwse.
(init_flow): New function.
(size_int_type_wide): Remove ggc_p conditionals.
* function.c
(push_function_context_to): Don't call save_tree_status.
(pop_function_context_from): Or restore_tree_status.
(assign_stack_local_1): Don't call push_obstacks.
(find_fixup_replacement): Use xmalloc.
(fixup_var_refs_insns): Free the storage.
(insns_for_mem_walk): Don't mess with obstacks.
(instantiate_decls): Likewise.
(trampoline_address): Likewise.
(expand_function_end): Likewise.
* function.h (sturct function):
Remove obstack-related variables.
(save_tree_status): Don't declare.
(restore_tree_status): Likewise.
* gcse.c (compute_can_copy):
Don't call oballoc/obfree.
* genattrtab.c (operate_exp): Remove
ggc_p conditionals.
(simplify_cond): Likewise.
(simplify_test_exp): Don't mess with obstacks.
(optimize_attrs): Likewise.
* gengenrtl.c (gendef): Don't include
ggc_p conditionals.
* ggc-callbacks.c (ggc_p): Remove.
* ggc-none.c (ggc_p): Remove.
* ggc.h (ggc_p): Don't declare.
* integrate.c (save_for_inline): Don't mess with obstacks.
(integrate_decl_tree): Likewise.
(output_inline_function): Likewise.
* lists.c
(init_EXPR_INSN_LIST_cache): Likewise.
* loop.c (temp_obstack):
Remove.
(rtl_obstack): Likewise.
(init_loop): Don't mess with obstacks.
(reg_address_cost): Free BIVs and GIVs.
(check_insns_for_bivs): Use xmalloc, not oballoc.
(find_mem_givs): Likewise.
(record_biv): Likewise.
(general_induction_var): Likewise.
(product_cheap_p): Likewse.
* optabs.c (init_one_libfunc): Remove
ggc_p conditional.
* print-tree.c (debug_tree): Don't use
oballoc/obfree.
(print_node): Likewise.
* profile.c (output_func_start_profiler):
Remove call to temporary_allocation.
* reload1.c
(eliminate_regs_in_insn): Don't mess with obstacks.
* resource.c
(mark_target_live_regs): Use xmalloc.
(free_resource_info): Free the memory.
* rtl.c (rtl_obstack):
Remove.
(rtvec_alloc): Don't mess with obstacks.
(rtx_alloc): Likewise.
(rtx_free): Remove.
(copy_rtx): Don't handle `b' cases.
(read_rtx): Use a local rtl_obstack.
* rtl.h (oballoc): Remove.
(obfree): Likewise.
(pop_obstacks): Likewise.
(push_obstacks): Likewise.
(allocate_bb_life_data): Likewise.
(allocate_reg_life_data): Likewise.
(rtx_free): Likewise.
* sdbout.c (sdbout_queue_anonymous_type):
Use tree_cons, not saveable_tree_cons.
* simplify-rtx.c
(cselib_init): Don't mess with obstacks.
* stmt.c
(mark_block_nesting): Mark the label_chain.
(epxand_label): Use ggc_alloc, not oballoc.
(clear_last_expr): Don't mess with obstacks.
(expand_decl_cleanup): Likewise.
(expand_dcc_cleanup): Likewise.
(expand_dhc_cleanup): Likewise.
(expand_anon_union_decl): Likewise.
(add_case_node): Use xmalloc, not oballoc.
(free_case_nodes): New function.
(expand_end_case): Call it.
* stor-layout.c (layout_type): Don't
mess with obstacks.
(layout_type): Likewise.
* toplev.c (wrapup_global_declarations):
Likewise.
(compile_file): Remove ggc_p conditionals.
(rest_of_compilation): Call init_flow. Remove ggc_p conditionals.
(decode_f_option): Remove ggc_p conditionals.
* tree.c
(function_maybepermanent_obstack): Remove.
(maybepermanent_obstack): Likewise.
(function_obstack): Likewise.
(tmeporary_obstack): Likewise.
(momentary_obstack): Likewise.
(temp_decl_obstack): Likewise.
(saveable_obstack): Likewise.
(rtl_obstack): Likewise.
(current_obstack): Likewise.
(expression_obstack): Likewise.
(struct obstack_stack): Likewise.
(obstack_stack): Likewise.
(obstack_stack_obstack): Likewise.
(maybepermanent_firstobj): Likewise.
(temporary_firstobj): Likewise.
(momentary_firstobj): Likewise.
(temp_decl_firstobj): Likewise.
(momentary_function_firstobj): Likewise.
(all_types_permanent): Likewise.
(struct momentary_level): Likewise.
(momentary_stack): Likewise.
(init_obstacks): Remove initialization of removed obstacks.
(save_tree_status): Remove.
(restore_tree_status): Likewise.
(temporary_allocation): Liekwise.
(end_temporary_allocation): Liekwise.
(resume_temporary_allocation): Likewise.
(saveable_allocation): Likewise.
(push_obstacks): Likewise.
(push_obstacks_nochange): Likewise.
(pop_obstacks): Likewise.
(allocation_temporary_p): Likewise.
(permanent_allocation): Likewise.
(preserve_data): Likewise.
(preserve_initializer): Likewise.
(rtl_in_current_obstack): Likewise.
(rtl_in_saveable_obstack): Likewise.
(oballoc): Likewise.
(obfree): Likewise.
(savealloc): Likewise.
(expralloc): Likewise.
(print_obstack_name): Likewise.
(debug_obstack): Likewise.
(object_permanent_p): Likewise.
(push_momentary): Likewise.
(perserve_momentary): Likewise.
(clear_momentary): Likewise.
(pop_momentary): Likewise.
(pop_momentary_nofree): Likewise.
(suspend_momentary): Likewise.
(resume_momentary): Likewise.
(make_node): Don't set TREE_PERMANENT.
(copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK.
Don't set TREE_PERMANENT.
(get_identifier): Remove ggc_p conditionals.
(build_string): Likewise.
(make_tree_vec): Likewise.
(build_decl_list): Remove.
(build_expr_list): Likewise.
(tree_cons): Remove ggc_p conditionals.
(decl_tree_cons): Remove.
(expr_tree_cons): Likewise.
(perm_tree_cons): Likewise.
(temp_tree_cons): Likewise.
(saveable_tree_cons): Likewise.
(build1): Remove ggc_p conditionals.
(build_parse_node): Likewise.
(build_type_attribute_variant): Don't mess with obstacks.
(build_type_copy): Likewise.
(type_hash_canon): Likewise.
(build_pointer_type): Likewise.
(build_reference_type): Likewise.
(build_index_type): Likewise.
(build_range_type): Likewise.
(dump_tree_statistics): Don't print obstack information.
* tree.h
(struct tree_common): Remove permanent_flag.
(TREE_PERMANENT): Remove.
(TREE_SET_PERMANENT): Likewise.
(TYPE_OBSTACK): Likewise.
(struct tree_type): Remove obstack.
(oballoc): Remove.
(savealloc): Likewise.
(build_decl_list): Likewise.
(build_expr_list): Likewise.
(perm_tree_cons): Likewise.
(temp_tree_cons): Likewise.
(saveable_tree_cons): Likewise.
(decl_tree_cons): Likewise.
(expr_tree_cons): Likewise.
(suspend_momentary): Likewise.
(allocation_temporary_p): Likewise.
(resume_momentary): Likewise.
(push_obstacks_nochange): Likewise.
(permanent_allocation): Likewise.
(push_momentary): Likewise.
(clear_momentary): Likewise.
(pop_momentary): Likewise.
(end_temporary_allocation): Likewise.
(pop_obstacks): Likewise.
(push_obstacks): Likewise.
(pop_momentary_nofree): LIkewise.
(preserve_momentary): Likewise.
(saveable_allocation): Likewise.
(temporary_allocation): Likewise.
(resume_temporary_allocation): Likewise.
(perserve_initializer): Likewise.
(debug_obstack): Likewise.
(rtl_in_current_obstack): Likewise.
(rtl_in_saveable_obstack): Likewise.
(obfree): Likewise.
* varasm.c (current_obstack): Remove.
(saveable_obstack): Remove.
(rtl_obstack): Remove.
(immed_double_const): Don't mess with obstacks.
(immed_real_cons): Likewise.
(output_constant_def): Likewise.
(init_varasm_status): Use xcalloc.
(mark_pool_constant): Mark the pool constant itself.
(free_varasm_status): Free memory.
(decode_rtx_const): Call bzero directly, rather than expanding it
inline.
(record_rtx_const): Don't mess with obstacks.
(force_const_mem): Likewise.
* config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
conditionals.
(aof_pic_entry): Likewise.
* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
* config/m32r/m32r.c (m32r_encode_section_info): Likewise.
* config/pa/pa.c (saveable_obstack): Remove.
(rtl_obstack): Likewise.
(current_obstack): Likewise.
(output_call): Don't mess with obstacks.
(hppa_encode_label): Remove ggc_p conditionals.
* config/romp/romp.c (get_symref): Don't mess with obstacks.
* config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
(rs6000_encode_section_info): Likewise.
* config/sh/sh.c (get_fpscr_rtx): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36856 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/arm/arm.c | 8 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 13 | ||||
-rw-r--r-- | gcc/config/m32r/m32r.c | 2 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 21 | ||||
-rw-r--r-- | gcc/config/romp/romp.c | 2 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 17 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 2 |
7 files changed, 10 insertions, 55 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 217306113cd..777c6a5b29f 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1717,10 +1717,7 @@ arm_encode_call_attribute (decl, flag) if (DECL_WEAK (decl) && flag == SHORT_CALL_FLAG_CHAR) return; - if (ggc_p) - newstr = ggc_alloc_string (NULL, len + 2); - else - newstr = permalloc (len + 2); + newstr = ggc_alloc_string (NULL, len + 2); sprintf (newstr, "%c%s", flag, str); @@ -9743,10 +9740,7 @@ aof_pic_entry (x) polluting even more code with ifdefs, and because it never contains anything useful until we assign to it here. */ ggc_add_rtx_root (&aof_pic_label, 1); - /* This needs to persist throughout the compilation. */ - end_temporary_allocation (); aof_pic_label = gen_rtx_SYMBOL_REF (Pmode, "x$adcons"); - resume_temporary_allocation (); } for (offset = 0, chainp = &aof_pic_chain; *chainp; diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 2d77d89dde0..2026e9999b6 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -4642,11 +4642,7 @@ ia64_encode_section_info (decl) size_t len = strlen (symbol_str); char *newstr; - if (ggc_p) - newstr = ggc_alloc_string (NULL, len + 1); - else - newstr = obstack_alloc (saveable_obstack, len + 2); - + newstr = ggc_alloc_string (NULL, len + 1); *newstr = SDATA_NAME_FLAG_CHAR; memcpy (newstr + 1, symbol_str, len + 1); @@ -4659,11 +4655,8 @@ ia64_encode_section_info (decl) ENCODE_SECTION_INFO was first called. Remove the '@'.*/ else if (symbol_str[0] == SDATA_NAME_FLAG_CHAR) { - if (ggc_p) - XSTR (XEXP (DECL_RTL (decl), 0), 0) - = ggc_alloc_string (symbol_str + 1, -1); - else - XSTR (XEXP (DECL_RTL (decl), 0), 0) = symbol_str + 1; + XSTR (XEXP (DECL_RTL (decl), 0), 0) + = ggc_alloc_string (symbol_str + 1, -1); } } diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 52291016772..09b7e43e6c5 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -436,7 +436,7 @@ m32r_encode_section_info (decl) ? TREE_CST_RTL (decl) : DECL_RTL (decl)); const char *str = XSTR (XEXP (rtl, 0), 0); int len = strlen (str); - char *newstr = savealloc (len + 2); + char *newstr = ggc_alloc (len + 2); strcpy (newstr + 1, str); *newstr = prefix; XSTR (XEXP (rtl, 0), 0) = newstr; diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 8cdd43e115d..c74fb62af05 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -5674,9 +5674,6 @@ output_millicode_call (insn, call_dest) } extern struct obstack permanent_obstack; -extern struct obstack *saveable_obstack; -extern struct obstack *rtl_obstack; -extern struct obstack *current_obstack; /* INSN is either a function call. It may have an unconditional jump in its delay slot. @@ -5792,16 +5789,8 @@ output_call (insn, call_dest, sibcall) not found on the list, create a new entry on the list. */ if (deferred_plabels == NULL || i == n_deferred_plabels) { - struct obstack *ambient_obstack = current_obstack; - struct obstack *ambient_rtl_obstack = rtl_obstack; const char *real_name; - /* Any RTL we create here needs to live until the end of - the compilation unit and therefore must live on the - permanent obstack. */ - current_obstack = &permanent_obstack; - rtl_obstack = &permanent_obstack; - if (deferred_plabels == 0) deferred_plabels = (struct deferred_plabel *) xmalloc (1 * sizeof (struct deferred_plabel)); @@ -5817,10 +5806,6 @@ output_call (insn, call_dest, sibcall) strlen (name) + 1); strcpy (deferred_plabels[i].name, name); - /* Switch back to normal obstack allocation. */ - current_obstack = ambient_obstack; - rtl_obstack = ambient_rtl_obstack; - /* Gross. We have just implicitly taken the address of this function, mark it as such. */ STRIP_NAME_ENCODING (real_name, name); @@ -5965,11 +5950,7 @@ hppa_encode_label (sym, permanent) int len = strlen (str); char *newstr; - if (ggc_p) - newstr = ggc_alloc_string (NULL, len + 1); - else - newstr = obstack_alloc ((permanent ? &permanent_obstack : saveable_obstack), - len + 2); + newstr = ggc_alloc_string (NULL, len + 1); if (str[0] == '*') *newstr++ = *str++; diff --git a/gcc/config/romp/romp.c b/gcc/config/romp/romp.c index 9825905cb21..33e8e90bb7e 100644 --- a/gcc/config/romp/romp.c +++ b/gcc/config/romp/romp.c @@ -1352,14 +1352,12 @@ get_symref (name) if (p == 0) { /* Ensure SYMBOL_REF will stay around. */ - end_temporary_allocation (); p = *last_p = (struct symref_hashent *) permalloc (sizeof (struct symref_hashent)); p->symref = gen_rtx_SYMBOL_REF (Pmode, obstack_copy0 (&permanent_obstack, name, strlen (name))); p->next = 0; - resume_temporary_allocation (); } return p->symref; diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index e0bacdd7757..9250bc1695e 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -6705,10 +6705,8 @@ output_toc (file, x, labelno, mode) /* When the linker won't eliminate them, don't output duplicate TOC entries (this happens on AIX if there is any kind of TOC, - and on SVR4 under -fPIC or -mrelocatable). - This won't work if we are not garbage collecting, so - we don't do it, sorry. */ - if (TARGET_TOC && ggc_p) + and on SVR4 under -fPIC or -mrelocatable). */ + if (TARGET_TOC) { struct toc_hash_struct *h; void * * found; @@ -7583,11 +7581,7 @@ rs6000_encode_section_info (decl) size_t len2 = strlen (XSTR (sym_ref, 0)); char *str; - if (ggc_p) - str = ggc_alloc_string (NULL, len1 + len2); - else - str = permalloc (len1 + len2 + 1); - + str = ggc_alloc_string (NULL, len1 + len2); str[0] = '.'; str[1] = '.'; memcpy (str + len1, XSTR (sym_ref, 0), len2 + 1); @@ -7634,10 +7628,7 @@ rs6000_encode_section_info (decl) size_t len = strlen (XSTR (sym_ref, 0)); char *str; - if (ggc_p) - str = ggc_alloc_string (NULL, len + 1); - else - str = permalloc (len + 2); + str = ggc_alloc_string (NULL, len + 1); str[0] = '@'; memcpy (str + 1, XSTR (sym_ref, 0), len + 1); diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index a945666b34e..5c7c81c646a 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -5032,10 +5032,8 @@ get_fpscr_rtx () if (! fpscr_rtx) { - push_obstacks (&permanent_obstack, &permanent_obstack); fpscr_rtx = gen_rtx (REG, PSImode, 48); REG_USERVAR_P (fpscr_rtx) = 1; - pop_obstacks (); ggc_add_rtx_root (&fpscr_rtx, 1); mark_user_reg (fpscr_rtx); } |