1. 05 Dec, 2000 1 commit
  2. 17 Nov, 2000 2 commits
    • ggc.h: Delete ggc_add_string_root and ggc_mark_string. · a8a05998
              * 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
      Zack Weinberg committed
    • stringpool.c: New file. · 520a57c8
      	* stringpool.c: New file.
      	* ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
      	(ggc_alloc_string): Now in stringpool.o.
      	* ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
      	* ggc.h: Delete prototype of ggc_add_string_root.  #define
      	ggc_add_string_root and ggc_mark_string to nothing.  Prototype
      	init_stringpool and stringpool_statistics.
      	(ggc_alloc_string): Returns a const char *.
      	* tree.c (hash_table, do_identifier_warnings): Delete.
      	(init_obstacks): Don't initialize the identifier hash table.
      	(get_identifier, maybe_get_identifier, start_identifier_warnings,
      	set_identifier_size): Now in stringpool.c.
      	* tree.h (struct tree_string): Constify pointer field.
      	(approx_sqrt): Prototype.
      
      	* Makefile.in (stringpool.o): Add rule, mention in OBJS.
      
      	* toplev.c (approx_sqrt): New function.
      	(compile_file): Call stringpool_statistics if mem_report is on.
      	(main): Call init_stringpool.
      
      	* builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
      	(process_directive), c-typeck.c (constructor_asmspec, struct
      	initializer_stack, start_init), except.c (create_rethrow_ref),
      	stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
      	(built_in_filename), varasm,c (in_named_name,
      	assemble_static_space, struct constant_descriptor, struct
      	deferred_string, struct pool_constant, force_const_mem),
      	i386.c (pic_label_name, global_offset_table_name), rs6000.c
      	(rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
      
      	* c-common.c (combine_strings): Combine strings in scratch
      	buffer, then pass to build_string.
      	* optabs.c (init_libfuncs), profile.c (init_edge_profiler,
      	output_func_start_profiler), stmt.c (init_stmt), alpha.c
      	(alpha_need_linkage), arm.c (arm_encode_call_attribute),
      	i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
      	rs6000.c (rs6000_encode_section_info): Create string in
      	scratch buffer, then pass to ggc_alloc_string.
      
      	* stmt.c (expand_asm_operands): If we must adjust the
      	constraint strings, do so by creating a new one, not by
      	modifying the old one in place.  Constify some char *s.
      	* config/pa/pa.c (hppa_encode_label): Drop unnecessary second
      	argument.  Create string in scratch buffer, then pass to
      	ggc_alloc_string.
      	* config/pa/pa-protos.h: Update prototype.
      	* config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
      	hppa_encode_label takes only one argument.
      
      	* c-parse.in (if_prefix): Find the filename and line number at
      	$-2 and $-1 respectively.
      	* diagnostic.c (error_recursion): Add missing newline, use
      	fputs, translate string.
      
      cp:
      	* lex.c (struct impl_files, internal_filename): Constify a char *.
      java:
      	* jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
      	Create string in scratch buffer, then pass to build_string.
      
      From-SVN: r37514
      Zack Weinberg committed
  3. 14 Nov, 2000 1 commit
  4. 12 Nov, 2000 1 commit
  5. 07 Nov, 2000 1 commit
    • alias.c [...] (init_alias_analysis, [...]): Use memset () instead of bzero (). · 961192e1
      	* alias.c (init_alias_analysis), calls.c (expand_call,
      	emit_library_call_value_1), combine.c (init_reg_last_arrays),
      	cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
      	(init_output_buffer, set_diagnostic_context), dwarf2out.c
      	(equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
      	(init_emit_once), fold-const.c (mul_double, div_and_round_double),
      	function.c (assign_parms), gcse.c (compute_can_copy,
      	alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
      	compute_hash_table, compute_set_hash_table,
      	compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
      	(global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
      	clear_units, schedule_block), integrate.c (initialize_for_inline,
      	expand_inline_function), jump.c (thread_jumps), local-alloc.c
      	(local_alloc), loop.c (combine_movables, count_loop_regs_set,
      	load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
      	regclass.c (init_reg_sets, init_reg_sets_1, regclass,
      	record_reg_classes, allocate_reg_info), reload.c
      	(get_secondary_mem, remove_address_replacements, find_reloads),
      	reload1.c (reload, set_initial_label_offsets, finish_spills,
      	reload_as_needed, choose_reload_regs_init,
      	reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
      	(sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
      	(rename_registers), stmt.c (expand_end_case), unroll.c
      	(unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
      	() instead of bzero ().
      
      ch:
      	* actions.c (check_missing_cases), typeck.c (build_chill_slice,
      	build_chill_cast): Use memset () instead of bzero ().
      
      cp:
      	* class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
      	(push_binding_level), error.c (cp_tree_printer), pt.c
      	(process_partial_specialization, tsubst_template_arg_vector),
      	search.c (lookup_member): Use memset () instead of bzero ().
      
      java:
      	* expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
      	(init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
      	instead of bzero ().
      
      From-SVN: r37303
      Joseph Myers committed
  6. 01 Nov, 2000 2 commits
  7. 13 Oct, 2000 1 commit
    • Remove obstacks. · 1f8f4a0b
      	* 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.
      
      From-SVN: r36856
      Mark Mitchell committed
  8. 22 Sep, 2000 1 commit
  9. 19 Sep, 2000 1 commit
  10. 17 Sep, 2000 2 commits
    • Bring back equal forms for libcalls · ebb1b59a
      From-SVN: r36469
      Bernd Schmidt committed
    • splay-tree.c (splay_tree_predecessor): Fix typo in comment. · 8f17b5c5
      	* splay-tree.c (splay_tree_predecessor): Fix typo in comment.
      
      	Convert the C front-end to use function-at-a-time mode.
      	* c-common.h: Include splay-tree.h.
      	(C_DECLARED_LABEL_FLAG): New macro.
      	(struct language_function): Add x_scope_stmt_stack and
      	x_function_name_declared_p.
      	(RECHAIN_STMTS): Move definition.
      	(lang_statment_code_p): Likewise.
      	(lang_expand_stmt): Likewise.
      	(lang_expand_decl_stmt): New variable.
      	(lang_expand_function_end): Likewise.
      	(current_scope_stmt_stack): New function.
      	(add_decl_stmt): Likewise.
      	(add_scope_stmt): Likewise.
      	(mark_stmt_tree): Likewise.
      	(struct c_lang_decl): New structure.
      	(DECL_SAVED_TREE): Define.
      	(c_mark_lang_decl): New function.
      	(c_expand_start_cond): Change prototype.
      	(c_finish_then): New function.
      	(c_finish_else): Likewise.
      	(current_function_name_declared): Remove.
      	(set_current_function_name_declared): Likewise.
      	(mark_c_language_function): Declare.
      	(case_compare): Likewise.
      	(c_add_case_label): Likewise.
      	(c_expand_expr): Likewise.
      	(c_safe_from_p): Likewise.
      	* c-common.c (lang_expand_function_end): New variable.
      	(struct if_elt): Add if_stmt.
      	(c_expand_start_cond): Add the if-statement to the statement-tree,
      	rather than generating RTL.
      	(c_finish_then): New function.
      	(c_expand_start_else): Don't generate RTL.
      	(c_finish_else): New function.
      	(c_expand_expr_stmt): Don't generate RTL.
      	(statement_code_p): Add SCOPE_STMT.
      	(case_compare): New function.
      	(c_add_case_label): Likewise.
      	(mark_stmt_tree): Likewise.
      	(c_mark_lang_decl): Likewise.
      	(mark_c_language_function): Likewise.
      	(c_expand_expr): Likewise.
      	(c_safe_from_p): Likewise.
      	* c-decl.c (c_stmt_tree): New variable
      	(c_scope_stmt_stack): Likewise.
      	(c_function_name_declared_p): Likewise.
      	(lang_expand_expr_stmt): Remove.
      	(poplevel): Don't call output_inline_function for nested
      	functions.
      	(pushdecl): Don't set DECL_CONTEXT for a local declaration of an
      	`extern' function.
      	(redeclaration_error_message): Change means of computing whether
      	or not a function is nested.
      	(lookup_label): Don't call label_rtx.
      	(init_decl_processing): Add more GC roots.
      	(start_decl): Add DECL_STMTs to the statement-tree, rather than
      	calling rest_of_decl_compilation.
      	(finish_decl): Don't call expand_decl.
      	(store_parm_decls): Begin the statement-tree, but don't generate
      	RTL.
      	(finish_function): Tie off the statement-tree.  Call c_expand_body
      	if appropriate.
      	(c_expand_body): New function.
      	(push_c_function_context): Save more information.
      	(pop_c_function_contxt): Likewise.
      	(copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
      	(lang_mark_tree): Mark it.
      	(current_stmt_tree): Adjust.
      	(current_scope_stmt_stack): New function.
      	(do_case): Remove.
      	(set_current_name_declared): Likewise.
      	(c_begin_compound_stmt): Define.
      	(c_expand_decl_stmt): Likewise.
      	* c-lang.c: Include rtl.h and expr.h.
      	(lang_init): Set more language-specific hooks.
      	* c-lex.c: Include expr.h.
      	* c-parse.in: Changes throughout to add statements to the
      	statement-tree, rather than generating RTL after every statement.
      	* c-semantics.c (lang_expand_decl_stmt): Define.
      	(add_decl_stmt): New function.
      	(add_scope_stmt): Likewise.
      	(finish_stmt_tree): Tweak.
      	(genrtl_expr_stmt): Likewise.
      	(genrtl_decl_stmt): Handle local labels, and call
      	lang_expand_decl_stmt if required.
      	(genrtl_for_stmt): Fix line-number handling.
      	(genrtl_case_label): Handle cleanups.
      	(genrtl_asm_stmt): Don't call combine_strings.
      	(genrtl_compound_stmt): Simplify.
      	(expand_stmt): Handle SCOPE_STMTs.
      	* c-tree.h (struct lang_decl): New structure.
      	(C_DECLARED_LABEL_FLAG): Remove.
      	(c_begin_compound_stmt): Declare.
      	(c_expand_decl_stmt): Likewise.
      	(c_expand_start_case): Rename to c_start_case.
      	(c_finish_case): New function.
      	* c-typeck.c (start_init): Tweak setting of
      	constructor_incremental.
      	(c_expand_asm_operands): Tweak error-handling.  Add to the
      	statement-tree.
      	(c_expand_return): Add to the statement-tree.
      	(c_expand_start_case): Rename to ...
      	(c_start_case): ... this.
      	(struct c_switch): New type.
      	(switch_stack): New variable.
      	(do_case): Simplify.
      	(c_finish_case): New function.
      	* dependence.c: Include expr.h.
      	(enum dependence_type): Change spelling of enumerals.
      	(check_node_dependence): Adjust.
      	* expr.h (lang_safe_from_p): Declare.
      	(safe_from_p): Likewise.
      	* expr.c (lang_safe_from_p): New variable.
      	(safe_from_p): Give it external linkage.  Use lang_safe_from_p.
      	* stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
      	* toplev.c (rest_of_decl_compilation): Robustify.
      	* tree.c (contains_placeholder_p): Likewise.
      	* Makefile.in: Update dependencies.
      	* objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
      	* objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
      	(objc_expand_function_end): New function.
      	(finish_method_def): Use it.
      	(init_objc): Initialize more language-specific hooks.
      	* objc/Make-lang.in: Update dependencies.
      
      	* cp-tree.h (struct cp_language_function): Remove
      	x_scope_stmt_stack and name_declared.
      	(current_scope_stmt_stack): Remove.
      	(function_name_declared_p): New macro.
      	(struct lang_decl_flags): Use c_lang_decl as a base class.
      	(context): Remove.
      	(struct lang_decl): Replace saved_tree with context.
      	(DECL_FRIEND_CONTEXT): Adjust accordingly.
      	(SET_DECL_FRIEND_CONTEXT): Likewise.
      	(DECL_VIRTUAL_CONTEXT): Likewise.
      	(DECL_SAVED_TREE): Remove.
      	(C_DECLARED_LABEL_FLAG): Likewise.
      	(cplus_expand_expr_stmt): Don't declare.
      	(add_decl_stmt): Likewise.
      	(add_scope_stmt): Likewise.
      	* decl.c (mark_stmt_tree): Remove.
      	(case_compare): Likewise.
      	(finish_case_label): Use c_add_case_label.
      	(init_decl_processing): Set more language-specific hooks.
      	(build_enumerator): Fix typo in comment.
      	(cplus_expand_expr_stmt): Remove.
      	(mark_lang_function): Use mark_c_language_function.
      	(lang_mark_tree): Use c_mark_lang_decl.
      	* decl2.c: Change order of inclusion.
      	* except.c: Likewise.
      	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
      	back on c_expand_expr.
      	* friend.c: Include expr.h.
      	* init.c: Change order of inclusion.
      	* Makefile.in: Update dependencies.
      	* lex.h (free_lang_decl_chain): Remove.
      	* optimize.c (maybe_clone_body): Use function_name_declared_p.
      	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
      	it doesn't exist.
      	(instantiate_decl): Use function_name_declared_p.
      	* semantics.c (lang_expand_expr_stmt): Remove.
      	(set_current_function_name_declared): Likewise.
      	(current_function_name_declared): Likewise.
      	(begin_compound_stmt): Use function_name_declared_p.
      	(add_decl_stmt): Remove.
      	(setup_vtbl_ptr): Use function_name_declared_p.
      	(add_scope_stmt): Remove.
      	(current_scope_stmt_stack): New function.
      	(cp_expand_stmt): Don't handle SCOPE_STMTs.
      	(expand_body): Use function_name_declared_p.
      	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
      	* typeck.c: Change order of includes.
      	(convert_sequence): Remove.
      
      From-SVN: r36464
      Mark Mitchell committed
  11. 10 Sep, 2000 1 commit
    • c-common.h (add_stmt): Change prototype. · 56cb9733
      	* c-common.h (add_stmt): Change prototype.
      	(RECHAIN_STMTS): New macro.
      	(CASE_LABEL_DECL): Likewise.
      	(genrtl_case_label): Change prototype.
      	(c_expand_start_case): Remove prototype.
      	(build_case_label): Change prototype.
      	(decl_constant_value): Declare.
      	* c-common.c (check_case_value): Handle C++'s extensions to C
      	semantics.
      	* c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
      	field.
      	* c-parse.in (stmt): Adjust handling of return statements and case
      	laels.
      	* c-semantics.c (add_stmt): Return the new statement.
      	(genrtl_return_stmt): Take the RETURN_STMT as input, not the
      	returned expression.  Directly generate RTL, rather than calling
      	c_expand_return.
      	(genrtl_switch_stmt): Don't call c_expand_start_case.
      	(build_case_label): Take the LABEL_DECL as input, too.
      	(genrtl_case_label): Just call add_case_node.
      	(expand_stmt): Adjust calls to genrtl_return_stmt and
      	genrtl_case_label.
      	* c-tree.h (c_expand_start_case): Declare.
      	* c-typeck.c (decl_constant_value): Give it external linkage.
      	(c_expand_return): Don't call expand_return or expand_null_return;
      	use genrtl_return_stmt instead.
      	* stmt.c (struct nesting): Remove num_ranges field.
      	(add_case_node): Give it external linkage.
      	(expand_start_case): Don't set num_ranges.
      	(expand_start_case_dummy): Don't clear it.
      	(pushcase): Rely on add_case_node to handle `default' labels.
      	(add_case_node): Handle `default' labels.
      	* tree.c (tree_int_cst_compare): New function.
      	* tree.h (tree_int_cst_compare): Declare.
      	(add_case_node): Likewise.
      
      	* cp-tree.h (push_switch): Change prototype.
      	(check_cp_case_value): Remove declaration.
      	(decl_constant_value): Likewise.
      	* decl.c (struct cp_switch): Add switch_stmt and cases.
      	(case_compare): New function.
      	(push_switch): Set switch_stmt.  Initialize cases.
      	(pop_switch): Clean up cases.
      	(define_case_label): Rename to ...
      	(finish_case_label): ... this.  Do semantic analysis for case
      	labels here.
      	(start_function): Correct comment.
      	* decl2.c (check_cp_case_value): Remove.
      	* expr.c (do_case): Remove.
      	* pt.c (tsubst_expr): Adjust call to finish_case_label.
      	* semantics.c (genrtl_do_poplevel): Remove declaration.
      	(RECHAIN_STMTS): Remove.
      	(finish_break_stmt): Use build_break_stmt.
      	(finish_continue_stmt): Use build_continue_stmt.
      	(finish_switch_cond): Adjust condition here, rater than in
      	c_expand_start_case.
      	(finish_case_label): Remove.
      	* typeck.c (c_expand_return): Remove.
      	(c_expand_start_case): Likewise.
      
      From-SVN: r36305
      Mark Mitchell committed
  12. 02 Sep, 2000 1 commit
    • rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro. · 6462bb43
      * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
      * gcse.c (hash_string_1): New function.
      (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
      (expr_equiv_p) <ASM_OPERANDS>: Likewise.
      * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
      (canon_hash_string): New function.
      (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
      (exp_equiv_p) <ASM_OPERANDS>: Likewise.
      (fold_rtx): Use ASM_OPERANDS accessor macros.
      * emit-rtl.c (copy_insn_1): Likewise.
      * integrate.c (copy_rtx_and_substitute): Likewise.
      * stmt.c (expand_asm_operands): Likewise.  Give an
      ASM_OPERANDS rtx the mode of the output reg being set from it.
      
      From-SVN: r36110
      Alexandre Oliva committed
  13. 01 Sep, 2000 1 commit
    • stmt.c (expand_asm_operands): Twiddle generating_concat_p so that CONCATs are… · 1b3d8f8a
      stmt.c (expand_asm_operands): Twiddle generating_concat_p so that CONCATs are not generated for ASMs.
      
      * stmt.c (expand_asm_operands): Twiddle generating_concat_p
      so that CONCATs are not generated for ASMs.
      * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
      not generating_concat_p.
      * function.c (pop_function_context_from): Reset
      generating_concat_p.
      (prepare_function_start): Likewise.
      * rtl.c (generating_concat_p): Define.
      * rtl.h (generating_concat_p): Declare.
      * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
      
      From-SVN: r36088
      Geoff Keating committed
  14. 29 Aug, 2000 2 commits
    • reload.c: Fix formatting. · 4381f7c2
              * reload.c: Fix formatting.
      
              * stmt.c: Fix formatting.
      
      From-SVN: r36051
      Kazu Hirata committed
    • local-alloc.c (requires_inout): Don't use reserved range for EXTRA_CONSTRAINTS... · c2cba7a9
              * local-alloc.c (requires_inout): Don't use reserved range for
              EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
              * recog.c (asm_operand_ok): Likewise.
              (preprocess_constraints, constrain_operands): Likewise.
              * regclass.c (record_reg_classes): Likewise.
              * reload.c (find_reloads): Likewise.
              * reload1.c (maybe_fix_stack_asms): Likewise.
              (reload_cse_simplify_operands): Likewise.
              * stmt.c (expand_asm_operands): Likewise.
      
              * md.texi: Update constraints documentation.
              * tm.texi (EXTRA_CONSTRAINT): Update.
      
      From-SVN: r36023
      Richard Henderson committed
  15. 24 Aug, 2000 2 commits
    • stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X. · 0551c32d
      	* stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
      
      	* config/ia64/ia64-protos.h: Update.
      	* config/ia64/ia64.c (gr_register_operand): New.
      	(fr_register_operand, grfr_register_operand): New.
      	(gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
      	(grfr_reg_or_8bit_operand): New.
      	(gr_reg_or_0_operand): Rename from reg_or_0_operand and
      	use gr_register_operand.
      	(gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
      	(gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
      	(gr_reg_or_8bit_and_adjusted_operand): Likewise.
      	(gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
      	(fr_reg_or_fp01_operand): Likewise.
      	(not_postinc_memory_operand): New.
      	(ia64_split_timode): Remove unused variables.
      	(rtx_needs_barrier): Check arguments to cmpxchg.
      	(builtin_description): Remove.
      	(bdesc_2argsi, bdesc_2argdi): Remove.
      	(ia64_init_builtins): Declare all builtins directly.
      	(ia64_expand_fetch_and_op): Rewrite to be called from
      	ia64_expand_builtin directly.  Use expand_binop and co.
      	(ia64_expand_op_and_fetch): Likewise.
      	(ia64_expand_compare_and_swap): Likewise.
      	(ia64_expand_binop_builtin): Remove.
      	(ia64_expand_lock_test_and_set): New.
      	(ia64_expand_lock_release): New.
      	(ia64_expand_builtin): Use them.
      	* config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
      	(EXTRA_CONSTRAINT): Use it.
      	(PREDICATE_CODES): Update.
      	* config/ia64/ia64.md (*): Use gr_register_operand and co.
      	(mf): Indicate that we set memory as well as use it.
      	(fetchadd_acq_si): Show memory being modified as well.
      	(fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
      	(val_compare_and_swap_si, val_compare_and_swap_di): Remove.
      	(lock_test_and_set_si, lock_test_and_set_di): Remove.
      	(fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
      	(fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
      	(fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
      	(fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
      	(add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
      	(and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
      	(add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
      	(and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
      	* config/ia64/ia64intrin.h (*): Cast result to the appropriate
      	return type.  Pretty print definitions.
      
      From-SVN: r35956
      Richard Henderson committed
    • optabs.c (init_optabs): Initialize fixtab... · b6a1cbae
      	* optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
      	and extendtab within their proper array boundaries.
      	* emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
      	for the entire array.
      
      	* config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
      	* config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
      	* config/avr/avr.c (order_regs_for_local_alloc): Likewise.
      	* config/fr30/fr30.c (fr30_print_operand): Likewise.
      	* config/i386/dgux.c (output_options): Likewise.
      	* config/i386/dgux.h (ASM_FILE_START): Likewise.
      	* config/m88k/m88k.c (output_options): Likewise.
      	* config/m88k/m88k.h (ASM_FILE_START): Likewise.
      	* config/mcore/mcore.c (mcore_output_inline_const_forced,
      	layout_mcore_frame, handle_structs_in_regs): Likewise.
      	* config/mips/mips.c (output_block_move): Likewise.
      	* config/rs6000/rs6000.c (rs6000_override_options,
      	rs6000_file_start): Likewise.
      	* config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
      	* fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
      	* fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
      	* builtins.c (expand_builtin_setjmp): Likewise.
      	* expr.c (safe_from_p): Likewise.
      	* flow.c (life_analysis): Likewise.
      	* fold-const.c (size_int_type_wide): Likewise.
      	* gcc.c (translate_options, init_spec, set_spec, main): Likewise.
      	* genattrtab.c (make_length_attrs): Likewise.
      	* genopinit.c (gen_insn): Likewise.
      	* genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
      	* global.c (global_alloc): Likewise.
      	* local-alloc.c (find_free_reg): Likewise.
      	* mips-tdump.c (print_symbol): Likewise.
      	* mips-tfile.c (parse_def, parse_input): Likewise.
      	* reload1.c (NUM_ELIMINABLE_REGS): Likewise.
      	* stmt.c (expand_nl_goto_receiver): Likewise.
      	* stor-layout.c (set_sizetype): Likewise.
      	* varasm.c (decode_reg_name): Likewise.
      	* toplev.c (decode_f_option, decode_W_option,
      	set_target_switch, print_switch_values): Likewise.
      	(NUM_ELEM): Remove macro.
      	(display_help, main): s/NUM_ELEM/ARRAY_SIZE/
      
      From-SVN: r35949
      Greg McGary committed
  16. 22 Aug, 2000 1 commit
  17. 16 Aug, 2000 1 commit
    • calls.c (ECF_SP_DEPRESSED): New macro. · 7393c642
      	* calls.c (ECF_SP_DEPRESSED): New macro.
      	(calls_function_1): Treat calling sp-depressed function as alloca.
      	(emit_call_1): Don't adjust SP if calling sp-depressed function.
      	(expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
      	If sp-depressed, ensure block saves and restores SP.
      	* fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
      	for INTEGER_TYPE.
      	* function.c (keep_stack_depressed): New function.
      	(thread_prologue_and_epilogue_insns): Call it.
      	* print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
      	to print DECL_OFFSET_ALIGN.
      	Print no-force-blk and transparent-union flags properly.
      	* stmt.c (expand_goto_internal): Don't restore stack if last block
      	and function returns with sp depressed.
      	(fixup_gotos): Likewise.
      	(save_stack_pointer): New function, from code in expand_decl.
      	(expand_decl): Call new function.
      	* tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
      	(TYPE_RETURNS_STACK_DEPRESSED): New macro.
      	(save_stack_pointer): New declaration.
      
      From-SVN: r35734
      Richard Kenner committed
  18. 12 Aug, 2000 1 commit
    • sibcall.c (uses_addressof): Accept both addressof and… · 055bcfee
      sibcall.c (uses_addressof): Accept both addressof and current_function_internal_arg_pointer inside a mem.
      
              * sibcall.c (uses_addressof): Accept both addressof and
              current_function_internal_arg_pointer inside a mem.
              (optimize_sibling_and_tail_recursive_call): Fail tail recursion
              if current_function_uses_addressof.
              * stmt.c (expand_return): Kill tail recursion and HAVE_return
              optimizations.
      
      From-SVN: r35657
      Richard Henderson committed
  19. 06 Aug, 2000 1 commit
  20. 24 Jun, 2000 1 commit
  21. 14 Jun, 2000 1 commit
    • tree.h (TYPE_USER_ALIGN, [...]): Define. · 11cf4d18
      	* tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
      	(struct tree_type, struct tree_decl): Add user_align member.
      	* stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
      	(place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
      	and DECL_USER_ALIGN 0, cap alignment to this value.
      	(place_field): Likewise.
      	(finalize_type_size): Set TYPE_USER_ALIGN.
      	(layout_type): Likewise.
      	(initialize_sizetypes): Likewise.
      	* c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
      	DECL_USER_ALIGN to 1.
      	* c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
      	(xfer_tag): Set TYPE_USER_ALIGN.
      	(finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
      	(finish_enum): Likewise.
      	* stmt.c (expand_decl): Set DECL_USER_ALIGN.
      	(expand_anon_union_decl): Likewise.
      	* tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
      	(build_index_type): Set TYPE_USER_ALIGN.
      	(build_range_type): Likewise.
      	(build_common_tree_nodes_2): Likewise.
      	* tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
      
      ch/:
      	* decl.c (init_decl_processing): Set TYPE_USER_ALIGN.
      	(layout_enum): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
      	* typeck.c (layout_chill_range_type): Set TYPE_USER_ALIGN.
      	(apply_chill_field_layout): Set DECL_USER_ALIGN.
      	(layout_chill_struct_type): Set TYPE_USER_ALIGN.
      
      cp/:
      	* class.c (build_secondary_vtable): Set DECL_USER_ALIGN.
      	(check_bitfield_decl, check_field_decl): Likewise.
      	(build_vtbl_or_vbase_field, build_base_field): Likewise.
      	(layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN.
      	* decl.c (record_unknown_type): Set TYPE_USER_ALIGN.
      	(xfer_tag, finish_enum): Likewise.
      	* decl2.c (finish_builtin_type): Likewise.
      	* init.c (init_init_processing): Likewise.
      	* pt.c (instantiate_class_template): Likewise.
      	* rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN.
      	* cp-tree.h (struct lang_type): Add user_align member.
      	(CLASSTYPE_USER_ALIGN): Define.
      
      f/:
      	* com.c (ffecom_transform_common_): Set DECL_USER_ALIGN.
      	(ffecom_transform_equiv_, ffecom_decl_field): Likewise.
      	(ffecom_init_0): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
      	(duplicate_decls): Set DECL_USER_ALIGN.
      
      java/:
      	* typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
      	* parse.y (java_complete_class): Set DECL_USER_ALIGN.
      	* parse.c: Rebuilt.
      
      From-SVN: r34541
      Jakub Jelinek committed
  22. 09 Jun, 2000 2 commits
    • ggc-none.c, [...] (ggc_alloc_obj): Rename it ggc_alloc, drop second argument,… · f8a83ee3
      ggc-none.c, [...] (ggc_alloc_obj): Rename it ggc_alloc, drop second argument, never clear returned memory.
      
      toplevel:
      	* ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
      	it ggc_alloc, drop second argument, never clear returned memory.
      	* ggc-common.c (ggc_alloc_string): Use ggc_alloc.
      	(ggc_alloc_cleared): New.
      	* ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
      	ggc_alloc_obj.  Remove ggc_alloc macro.
      	(ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
      
      	* rtl.c (rtvec_alloc): Clear the vector always.
      	(rtx_alloc): Clear the first word always.  Remove dirty
      	obstack tricks (this routine is no longer a bottleneck).
      	* tree.c (make_node): Clear the new node always.
      	(make_tree_vec): Likewise.
      	(tree_cons): Clear the common structure always.
      	(build1): Likewise; also, clear TREE_COMPLEXITY.
      	* gengenrtl.c: Use puts wherever possible.  Remove extra
      	newlines.
      	(gendef): Clear the first word of an RTX in the generator
      	function, irrespective of ggc_p.  Initialize '0' slots to
      	NULL.
      	(genlegend): Don't generate obstack_alloc_rtx routine, just a
      	thin wrapper macro around obstack_alloc.
      
      	* stmt.c (expand_fixup): Use ggc_alloc.
      	* c-typeck.c (add_pending_init): Use ggc_alloc.
      	* emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
      	* varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
      	const0_rtx when it is created.
      	(immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
      	we are not in a function.
      
      	* tree.c (tree_class_check_failed): Make second arg an int.
      	* tree.h: Update prototype.
      
      cp:
      	* call.c (add_candidate): Use ggc_alloc_cleared.
      	* decl.c (lookup_label): Likewise.
      	* lex.c (retrofit_lang_decl): Likewise.
      
      From-SVN: r34478
      Zack Weinberg committed
    • timevar.def: Add TV_EXPAND. · ea11ca7e
              * timevar.def: Add TV_EXPAND.
              * timevar.c (timevar_print): Update timing information.
              * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
      
              * stmt.c (expand_return): Check for error_mark_node.
      
      cp/:
              * semantics.c (expand_body): Push to TV_EXPAND.
              * optimize.c (optimize_function): Push to TV_INTEGRATION.
              * decl.c (start_function): Always call announce_function.
      
              * tinfo2.cc: Just declare abort.
      
      From-SVN: r34470
      Jason Merrill committed
  23. 06 Jun, 2000 1 commit
  24. 05 Jun, 2000 1 commit
    • tree.h (VOID_TYPE_P): New macro. · 71653180
      	* tree.h (VOID_TYPE_P): New macro.
      	(COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
      	* c-decl.c (grokdeclarator): Use VOID_TYPE_P.
      	(get_parm_info): Likewise.
      	(store_parm_decls): Likewise.
      	(combine_parm_decls): Likewise.
      	(finish_function): Likewise.
      	* c-typeck.c (build_function_call): Likewise.
      	(build_binary_op): Likewise.
      	(build_conditional_expr): Likewise.
      	(internal_build_compound_expr): Likewise.
      	(convert_for_assignment): Likewise.
      	* stmt.c (expend_expr_stmt): Likewise.
      	(warn_if_unused_value): Likewise.
      	(expand_return): Likewise.
      	* c-parse.in (primary): Likewise.
      	* c-parse.y, c-parse.c, c-parse.h: Regenerate.
      	* objc/objc-parse.y, objc/objc-parse.c: Regenerate.
      
      From-SVN: r34402
      Nathan Sidwell committed
  25. 31 May, 2000 2 commits
    • Makefile.in (c-decl.o): Depend on rtl.h and expr.h. · 3bdf5ad1
      	* Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
      	* alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
      	(REG_BASE_VALUE): Remove unneeded cast to unsigned.
      	(get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
      	(find_base_decl): New function, from c_find_base_decl in c-common.c.
      	(new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
      	(get_alias_set): Likewise.
      	Major rework to do more things and allow language-specific code
      	to just handle special-cases.
      	(record_alias_subset): Args are HOST_WIDE_INT.
      	(record_component_alias): Local vars are HOST_WIDE_INT.
      	Don't handle COMPLEX_EXPR.
      	(get_varargs_alias_set): Moved from builtins.c.
      	(get_frame_alias_set): New function.
      	* builtins.c (expand_builtin_return_address): Use frame alias set.
      	(expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
      	for setjmp buffer.
      	(get_memory_rtx): Rework to use set_mem_attributes.
      	(get_varargs_alias_set): Deleted from here.
      	* c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
      	(c_find_base_decl): Deleted from here.
      	(c_get_alias_set): Remove many cases and rework to just handle
      	C-specific cases.
      	* c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
      	* c-decl.c (rtl.h, expr.h): Now included.
      	(init_decl_processing): Call record_component_aliases on array types.
      	(grokdeclarator): Likewise.
      	Set TREE_ADDRESSABLE for all fields that are not bitfields.
      	* c-typeck.c (common_type): Call record_component_aliases for array.
      	* caller-save.c (setup_save_areas): Rework register loop for unsigned.
      	Set all save areas to the frame alias set.
      	* calls.c (initialie_argument_information): Call set_mem_attributes.
      	(compute_argument_addresses, expand_call): Likewise.
      	* explow.c (set_mem_attributes): New function.
      	(stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
      	* expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
      	LEN and OFFSET now HOST_WIDE_INT.
      	(clear_by_pieces): Similar changes.
      	(move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
      	(move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
      	(move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
      	(clear_by_pieces_1): Likewise.
      	(emit_push_insn): Call set_mem_attributes.
      	(expand_expr, case INDIRECT_REF): Likewise.
      	(expand_expr, case VAR_DECL): Call change_address.
      	* expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
      	tree_low_cst.
      	(get_varargs_alias_set, get_frame_alias_set): New decls.
      	(record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
      	(new_alias_set, set_mem_attributes): Likewse.
      	* function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
      	(assign_stack_temp_for_type): Likewise.
      	Can split slot even if alias set since can copy.
      	Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
      	(assign_temp): Use host_integerp and tree_low_cst.
      	(put_var_into_stack): Properly handle SAVE_EXPR.
      	(put_addressof_into_stack): Likewise.
      	(assign_parms): Call set_mem_attributes.
      	Delete #if 0 code.
      	(fix_lexical_address): Put reference to chain into frame alias set.
      	(expand_function_start): Call set_mem_attributes.
      	* integrate.c (expand_inline_function): Likewise.
      	* recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
      	* regmove.c (try_apply_stack_adjustment): Likewise.
      	* reload.c (push_reload, make_memloc): Likewise.
      	* reload1.c (alter_reg): Make alias sets for spilled pseudos.
      	* rtl.def (MEM): Update comment.
      	* rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
      	(move_by_pieces): Change length to HOST_WIDE_INT.
      	(record_base_value, record_alias_subset): Delete from here.
      	* stmt.c (expand_decl): Call set_mem_attributes.
      	* stor-layout.c (finish_record_layout): Call record_component_aliases.i
      	* toplev.c (compile_file): Call init_alias_once earlier.
      	* tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
      	from here: now in alias.c.
      	* tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
      	(struct tree_decl): Likewise.
      	(get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
      	* varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
      	(output_constant_def, force_const_mem): Likewise.
      	* cp/Makefile.in (decl.o): Include ../expr.h.
      	* cp/decl.c (expr.h): Include.
      	(init_decl_processing): Call record_component_aliases for arrays.
      	(grokdeclarator): Likewise.
      	Set TREE_ADDRESSABLE for fields that aren't bitfields.
      	* cp/tree.c (build_cplus_array_type_1): Call record_component_aliases.
      
      From-SVN: r34305
      Richard Kenner committed
    • stmt (expand_end_case): Reorder conversion sequence for jump table to avoid extra truncations. · ecc9dd93
      	* stmt (expand_end_case): Reorder conversion sequence for jump
      	table to avoid extra truncations.
      
      From-SVN: r34291
      Nathan Sidwell committed
  26. 27 May, 2000 1 commit
    • tree.h (TREE_CODE_LENGTH): New macro. · 8d5e6e25
      	* tree.h (TREE_CODE_LENGTH): New macro.
      	* c-common.c (c_find_base_decl): Use it.
      	* expr.c (safe_from_p): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* tree.c (make_node, copy_node, get_identifier): Likewie.
      	(first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
      	(build, build_nt, build_parse_node, simple_cst_equal): Likewise.
      	* fold-const.c (make_range): Likewise.
      	(fold): Likewise; also use first_rtl_op.
      	* c-iterate.c (collect_iterators): Use first_rtl_op.
      	* calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
      	Use IS_EXPR_CODE_CLASS.
      	(preexpand_calls): Likewise.
      	* ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
      	and TREE_CODE_LENGTH.
      	* stmt.c (warn_if_unused_value): If no operands, no unused value.
      	* ch/lang.c (deep_const_expr): Use first_rtl_op.
      	* ch/satisfy.c (satisfy): Use TREE_CODE_LENGTH.
      	* cp/method.c (mangle_expression): Use TREE_CODE_LENGTH.
      	* cp/tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
      	(built_min, cp_tree_equal): Likewise.
      
      From-SVN: r34203
      Richard Kenner committed
  27. 25 May, 2000 2 commits
  28. 17 May, 2000 1 commit
  29. 09 May, 2000 1 commit
    • top level: · 3b304f5b
      	* Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
      	(tree.o): Depend on output.h.
      
      	* c-decl.c (pending_invalid_xref_file,
      	current_function_prototype_file): Constify.
      	(pushdecl): Constify a local char *.
      	(define_label): Constify filename parameter.
      	* c-lex.c (init_parse): Constify parameter and return value.
      	* c-typeck.c (c_expand_asm_operands): Constify filename parameter.
      	* c-tree.h: Update prototypes.
      	* c-parse.in: Constify filename member of %union, and if_stmt_file.
      	* c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
      	objc/objc-parse.c: Regenerate.
      
      	* dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
      	* dwarfout.h: Update prototypes.
      	* expr.c (expand_expr): Constify a local char *.
      	* flags.h: Constify main_input_filename.
      	* function.c (expand_function_end): Constify filename parameter.
      	* genrecog.c (make_insn_sequence): Use a character array for
      	c_test_pos.
      	(main): Remove unused variables.
      	* input.h: Constify input_filename, main_input_filename, and
      	file_stack.name.  Update prototypes.
      	* output.h: Declare first_global_object_name and
      	weak_global_object_name here, as const char *.
      	* stmt.c (expand_asm_operands): Constify filename parameter.
      	* toplev.c (compile_file, push_srcloc, debug_start_source_file):
      	Constify filename parameter.
      	(input_filename, main_input_filename): Constify.
      	* toplev.h: Update prototypes.
      	* tree.c: Include output.h.  Don't declare
      	first_global_object_name or weak_global_object_name.  Clean up string
      	bashing in get_file_function_name_long.
      	* tree.h (struct tree_decl): Constify filename member.
      	(input_filename): Constify.
      	Update prototypes.
      	* varasm.c (first_global_object_name, weak_global_object_name):
      	Constify.
      	(assemble_start_function, assemble_variable): Clean up string bashing.
      
      	* gcc.c: Constify all spec-related strings initialized,
      	transitively, from string constants.  Constify all strings
      	and string variables related to multilibs.
      	(set_spec, read_specs): Cast argument to free to PTR.
      	(used_arg): Do not modify multilib_matches.  Use strncmp plus
      	length comparison to compare multilib switches.
      	* genmultilib: Constify everything declared in multilib.h.
      
      ch:
      	* ch-tree.h: Update prototypes.  Remove prototypes for
      	functions declared elsewhere.
      	* decl.c (define_label): Constify filename parameter.
      	* grant.c (globalize_decl, set_default_grant_file): Constify
      	local char * variables.  Don't declare
      	first_global_object_name or asm_out_file.
      	* lang.c (chill_real_input_filename): Constify.
      	* lex.c (init_parse): Constify parameter and return value.
      	* parse.c: Don't declare input_filename.
      	(ch_expand_asm_operands): Constify filename parameter.
      	(parse_multi_dimension_case_action): Constify local char *.
      	* satisfy.c (safe_satisfy_decl): Constify local char *.
      
      cp:
      	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
      	and pending_inline.filename.  Update prototypes.
      	* decl.c (define_label): Constify filename parameter.
      	* decl2.c (warn_if_unknown_interface): Constify local char *.
      	* input.c Constify input_source.filename. Don't declare
      	input_filename or lineno.  Constify filename parameter to feed_input.
      	* lex.c (init_parse): Constify parameter and return value.
      	(cp_pragma_interface, cp_pragma_implementation): Constify
      	filename argument.
      	(reinit_parse_for_method, reinit_parse_for_block,
      	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
      	Constify local char *.
      	* pt.c: Don't declare lineno or input_filename.
      	(print_template_context, tsubst_friend_function, tsubst_decl,
      	tsubst, instantiate_decl): Constify local char *.
      	* semantics.c (expand_body): Constify local char *.
      	* tree.c (build_srcloc): Constify filename parameter.
      	* typeck.c (c_expand_asm_operands): Constify filename
      	parameter.
      
      f:
      	* com.c (ffecom_subscript_check_): Constify array_name
      	parameter. Clean up string bashing.
      	(ffecom_arrayref_, ffecom_char_args_x_): Constify array_name
      	parameter.
      	(ffecom_do_entry_, ffecom_gen_sfuncdef_, ffecom_start_progunit_,
      	ffecom_sym_transform_, ffecom_sym_transform_assign_): Constify
      	local char *.
      	(init_parse): Constify parameter and return value.
      	* lex.c: Include dwarfout.h instead of prototyping dwarfout_*
      	functions here.
      	(ffelex_file_pop_, ffelex_file_push_): Constify filename parameter.
      	(ffelex_hash_, ffelex_include_): Constify local char *.
      	* std.c (ffestd_exec_end): Constify local char *.
      	* where.c (ffewhere_file_new): Constify filename parameter.
      	* where.h: Update prototypes.
      
      java:
      	* check_init.c (check_init): Constify local char *.
      	* class.c (push_class): Constify local char *.
      	* java_tree.h: Update prototypes.
      	* jcf-io.c (open_class): Constify filename parameter and
      	return value.
      	(find_class): Remove redundant string copy.  Cast return from
      	open_class.
      	* jcf-parse.c (read_class, parse_class_file, yyparse):
      	Constify local char *.
      	* jcf-write.c (generate_bytecode_insns, generate_classfile):
      	Constify local char *.
      	* jcf.h (JCF): Constify filename and classname.
      	(JCF_FINISH): Cast args to FREE to char * when appropriate.
      	* lang.c (init_parse): Constify parameter and return value.
      	* lex.c (java_get_line_col): Constify filename parameter.
      	* parse.h: Constify parser_ctxt.filename.  Update prototypes.
      	* parse.y (java_parser_context_suspend,
      	issue_warning_error_from_context, safe_layout_class): Constify
      	local char *.
      	* parse.c: Regenerate.
      
      From-SVN: r33804
      Zack Weinberg committed
  30. 04 May, 2000 1 commit
    • rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and MEM_ALIAS_SET. · bf49b139
      	* rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
      	MEM_ALIAS_SET.
      	* alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
      	when calling MEM_COPY_ATTRIBUTES.
      	* emit-rtl.c (operand_subword, change_address): Likewise.
      	* explow.c (stabilize): Likewise.
      	* expr.c (protect_from_queue, emit_move_insn_1): Likewise.
      	* integrate.c (copy_rtx_and_substitute): Likewise.
      	* combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
      	when calling MEM_COPY_ATTRIBUTES.
      	(make_extraction, simplify_shift_const, gen_lowpart_for_combine):
      	Likewise.
      	* cse.c (gen_lowpart_if_possible): Likewise.
      	* function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
      	* optabs.c (gen_move_insn): Likewise.
      	* recog.c (validate_replace_rtx_1): Likewise.
      	* simplify-rtx.c (add_mem_for_addr): Likewise.
      	* stmt.c (expand_anon_union_decl): Likewise.
      	* config/arm/arm.md: Likewise.
      	* config/h8300/h7300.c (fix_bit_operand): Likewise.
      	* config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
      	(block_move_no_loop, block_move_sequence): Likewise.
      	* config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
      	* config/alpha/alpha.c (get_aligned_mem): Likewise.
      	Clear MEM_ALIAS_SET.
      	* final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
      	MEM_COPY_ATTRIBUTES.
      
      From-SVN: r33665
      Richard Kenner committed
  31. 18 Apr, 2000 1 commit
  32. 06 Apr, 2000 1 commit
    • final.c (final): Use xcalloc to allocate line_note_exists. · bedda2da
      	* final.c (final): Use xcalloc to allocate line_note_exists.
      	* function.c (free_after_compilation): Free the temp_slots.
      	(assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
      	(combine_temp_slot): Free temp_slots when they get combined.
      	(purge_addressof): Fix typo in comment.
      	* stmt.c (mark_goto_fixup): Mark the fixup itself.
      	(expand_fixup): Allocate the fixup with ggc_alloc_obj.
      
      	* ggc.h: Include varray.h.
      	(ggc_pending_trees): Declare.
      	(ggc_mark_tree_children): Remove declaration.
      	(ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
      	* ggc-common.c (ggc_pending_trees): New variable.
      	(ggc_mark_roots): Call ggc_mark_trees.
      	(ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
      	the ggc_pending_trees.
      	* Makefile.in (GGC_H): New variable.  Use it throughout in place
      	of ggc.h.
      
      	* Makefile.in (GGC_H): New variable.  Use it throughout in place
      	of ggc.h.
      
      	* call.c: Don't include obstack.h.  Include ggc.h.
      	(obstack_chunk_alloc): Don't define.
      	(obstack_chunk_free): Likewise.
      	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
      	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
      	(pop_switch): Free it.
      
      	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
      
      	* dump.c (dequeue_and_dump): Don't try to print the bit_position
      	if we don't have a DECL_FIELD_OFFSET.
      
      	* Makefile.in (GGC_H): Add varray.h.
      
      From-SVN: r32956
      Mark Mitchell committed