Commit Graph

458 Commits

Author SHA1 Message Date
Richard Henderson
fbfa55b0f6 dwarf2out.c (queue_reg_save): New.
* dwarf2out.c (queue_reg_save): New.
        (flush_queued_reg_saves, clobbers_queued_reg_save): New.
        (dwarf2out_frame_debug_expr): Call queue_reg_save instead of
        dwarf2out_reg_save.
        (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed.
        (cfa, cfa_store, cfa_temp): Make static.
        * final.c (final_scan_insn): Always call dwarf2out_frame_debug.

From-SVN: r40594
2001-03-17 21:09:55 -08:00
Jan Hubicka
5274639a7c Undo the accidental checkin :(
From-SVN: r40129
2001-02-28 17:53:35 +00:00
Jan Hubicka
c679d0489a i386.md (sse_andti3, [...]): Add SSE2 versions; add missing '%' in constraints.
* i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions;
	add missing '%' in constraints.

From-SVN: r40127
2001-02-28 17:49:37 +00:00
Richard Kenner
651a788e3b * final.c (output_operand_lossage): Use internal_error, not error.
From-SVN: r39850
2001-02-18 15:50:41 -05:00
Bernd Schmidt
0433762093 Eliminate SUBREGs inside MEMs.
From-SVN: r39538
2001-02-08 15:09:05 +00:00
Chandrakala Chavva
8480e4804c final.c: Revert back my previous changes.
* final.c: Revert back my previous changes.
        * output.h: Make profile_label_no extern.
        * config/rs6000/rs6000.c (output_profile_hook): Use standard functions
        for generating label.

From-SVN: r39506
2001-02-06 20:05:35 -05:00
Chandrakala Chavva
411707f4e4 final.c: Move the declaration profile_label_no to ...
* final.c: Move the declaration profile_label_no to ...
        * output.h: ... here.
        * function.c (expand_function_start): Call PROFILE_HOOK.
        * config/rs6000/aix.h: Define PROFILE_HOOK.
        * config/rs6000/rs6000-protos.h: output_profile_hook new.
        * config/rs6000/rs6000.c (output_profile_hook): Define.
        (output_prolog): Do nothing for ABI_AIX as it is taken care by
        output_profile_hook.
        tm.texi : Explain new macro PROFILE_HOOK.

From-SVN: r39473
2001-02-05 20:23:13 -05:00
Kaveh R. Ghazi
c913b6f18e configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.
* configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.

	* Makefile.in: Remove all dependencies on defaults.h.
	* builtins.c: Don't include defaults.h.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-pragma.c: Likewise.
	* c-typeck.c: Likewise.
	* combine.c: Likewise.
	* i386.c: Likewise.
	* frame-ia64.c: Likewise.
	* cppexp.c: Likewise.
	* crtstuff.c: Likewise.
	* dbxout.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarfout.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* frame-dwarf2.c: Likewise.
	* libgcc2.c: Likewise.
	* optabs.c: Likewise.
	* profile.c: Likewise.
	* sdbout.c: Likewise.
	* toplev.c: Likewise.
	* tradcif.y: Likewise.
	* tree.c: Likewise.
	* varasm.c: Likewise.

ch:
	* Makefile.in: Remove all dependencies on defaults.h.
	* decl.c: Don't include defaults.h.
	* timing.c: Likewise.

cp:
	* Make-lang.in: Remove all dependencies on defaults.h.
	* call.c: Don't include defaults.h.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* except.c: Likewise.
	* pt.c: Likewise.
	* rtti.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.

f:
	* Make-lang.in: Remove all dependencies on defaults.h.
	* com.c: Don't include defaults.h.

java:
	* Make-lang.in: Remove all dependencies on defaults.h.
	* decl.c: Don't include defaults.h.
	* expr.c: Likewise.
	* parse.y: Likewise.

From-SVN: r39308
2001-01-28 01:50:22 +00:00
John Wehle
b660f82f15 * final.c: (leaf_function_p): Fix typo.
From-SVN: r38935
2001-01-12 05:02:00 +00:00
Bernd Schmidt
08394eefae Introduce ORIGINAL_REGNO macro
From-SVN: r38546
2000-12-29 17:35:57 +00:00
Alexandre Oliva
99c8c61c83 final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
* final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
* tm.texi: Document it.

From-SVN: r38395
2000-12-20 09:03:23 +00:00
J"orn Rennecke
2a84158850 * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
From-SVN: r38080
2000-12-07 00:13:23 +00:00
Alexandre Oliva
08106825b9 final.c (output_addr_const): Don't assume at least one operand is a CONST_INT.
* final.c (output_addr_const) <PLUS>: Don't assume at least one
operand is a CONST_INT.

From-SVN: r37935
2000-12-01 23:29:57 +00:00
Alexandre Oliva
422be3c3cc final.c (output_addr_const): Simplify.
* final.c (output_addr_const) [LABEL_REF]: Simplify.
[MINUS]: Enclose non-CONST_INTs in parentheses.
[default]: Try OUTPUT_ADDR_CONST_EXTRA.
* tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
* varasm.c (decode_rtx_const) [CONST]: If it's not something
PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
instead of abort()ing.
* sh.c (output_pic_addr_const): Removed.  Fixed all callers.
* sh.h (OUTPUT_ADDR_CONST_EXTRA): New.  Handle the UNSPECs
formerly handled in output_pic_addr_const.
* sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
operands of MINUS in CONSTs so that decode_rtx_const() will
accept them.

From-SVN: r37691
2000-11-23 06:37:23 +00:00
Kaveh R. Ghazi
4e135bdd14 alpha.c (check_float_value): Use memcpy, not bcopy.
* alpha.c (check_float_value): Use memcpy, not bcopy.
	* arm.c (output_move_double): Likewise.
	* arm.md: Likewise.
	* m88k.c (legitimize_operand): Likewise.
	* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
	* m88k.md: Likewise.
	* mips.c (override_options): Likewise.
	* mips.md: Likewise.
	* romp.c (output_fpops): Likewise.
	* rs6000.c (rs6000_override_options): Likewise.
	* sh.md: Likewise.
	* vax.c (check_float_value): Likewise.

	* emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
	* expmed.c (synth_mult): Likewise.
	* final.c (add_bb_string): Likewise.
	* genattr.c (main): Likewise.
	* genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
	Likewise.
	* jump.c (thread_jumps): Likewise.
	* prefix.c (save_string): Likewise.
	* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
	* regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
	* reload1.c (reload, eliminate_regs): Likewise.

cp:
	* decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
	* lex.c (copy_lang_decl): Likewise.

java:
	* decl.c (copy_lang_decl): Use memcpy, not bcopy.
	* jcf-parse.c (jcf_figure_file_type): Likewise.

From-SVN: r37367
2000-11-10 16:01:28 +00:00
Richard Henderson
6623457026 dwarfout.c (INSN_LABEL_FMT): Remove.
* dwarfout.c (INSN_LABEL_FMT): Remove.
        (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
        (dwarfout_label): Remove.
        * dwarfout.h: Remove it's prototype.
        * dwarf2out.c (INSN_LABEL_FMT): Remove.
        (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
        (dwarf2out_label): Remove.
        * dwarf2out.h: Remove it's prototype.
        * final.c (final_scan_insn): Don't call dwarf[2]out_label.

From-SVN: r37310
2000-11-07 18:18:00 -08:00
Jim Wilson
8215347ec3 Make ia64 port use tags instead of labels for debug info labels.
* defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
	* tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
	* dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
	instead of ASM_OUTPUT_INTERNAL_LABEL.
	(dwarf2out_end_block, dwarf2out_label): Likewise.
	* final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
	* config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.

From-SVN: r37174
2000-10-31 16:20:34 -08:00
Jan Hubicka
6c698a6d9b final.c (final_scan_insn): Remove extra extract_insn call; Use caching for constrain_operands.
* final.c (final_scan_insn): Remove extra extract_insn call;
	Use caching for constrain_operands.
	(cleanup_subreg_operands): Use caching for extract_insn.
	* recog.c (constrain_operands_cached): New.
	* recog.h (constrain_operands_cached): Declare.
	* i386.c (ix86_attr_length_immediate_default,
	ix86_attr_length_address_default, ix86_agi_dependant): Cache
	extract_insn call.

	* recog.c (asm_noperands): Tweak.
	(extract_insn): Do not call asm_noperads for non-asm instructions.

From-SVN: r36665
2000-09-29 11:40:24 +00:00
Bernd Schmidt
afc6898e10 Fix shorten_branches bugs
From-SVN: r36538
2000-09-19 16:43:36 +00:00
Stephane Carrez
c349e40b5b flags.h (flag_dump_rtl_in_asm): Declare.
* flags.h (flag_dump_rtl_in_asm): Declare.
	* toplev.c (flag_dump_rtl_in_asm): Define.
	(decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
	if -dP is specified.
	* rtl.h (print_rtx_head): Declare.
	* print-rtl.c (print_rtx_head): Define.
	(print_rtx): Print the string pointed to by print_rtx_head
	at beginning of each dump line.
	(print_rtl): Likewise.
	(print_rtl_single): Likewise.
	* final.c (final_scan_insn): Dump the insn in the assembly
	file for debugging.
	* gcc.1: Document -dP option.
	* invoke.texi (Debugging Options): Likewise.

From-SVN: r36394
2000-09-13 21:34:05 +02:00
Kazu Hirata
f5d927c07f * final.c: Fix formatting.
From-SVN: r36338
2000-09-11 16:00:04 -06:00
Zack Weinberg
d8ea8f2871 defaults.h: Provide default definitions for...
* defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
        SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
        LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
        DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.

        * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
        profile.c, sdbout.c, tradcif.y, tree.c, ch/decl.c, ch/timing.c,
        cp/decl.c, cp/rtti.c, f/com.c, f/com.h, java/decl.c, java/expr.c:
        Include defaults.h if not already included.
        Don't define the above macros.

        * Makefile.in, ch/Makefile.in, cp/Makefile.in, f/Makefile.in:
        Update dependencies.

From-SVN: r36307
2000-09-11 01:50:49 +00:00
Rodney Brown
2c3c49dec3 alias.c (mark_constant_function): Use INSN_P.
* alias.c (mark_constant_function): Use INSN_P.
	(init_alias_analysis): Likewise.
	* combine.c (combine_instructions): Use INSN_P.
	(can_combine_p): Likewise.
	(try_combine): Likewise.
	(distribute_notes): Likewise.
	(distribute_links): Likewise.
	* cse.c (cse_around_loop): Use INSN_P.
	(invalidate_skipped_block): Likewise.
	(cse_set_around_loop): Likewise.
	(cse_end_of_basic_block): Likewise.
	(delete_trivially_dead_insns): Likewise.
	* emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
	(unshare_all_rtl_1): Likewise.
	(next_cc0_user): Likewise.
	(try_split make_insn_raw): Likewise.
	(remove_unnecessary_notes): Likewise.
	* final.c (shorten_branches): Use INSN_P.
	(leaf_renumber_regs): Likewise.
	(leaf_renumber_regs_insn): Likewise.
	* flow.c (find_label_refs): Use INSN_P.
	(verify_wide_reg): Likewise.
	(notice_stack_pointer_modification): Likewise.
	(count_or_remove_death_notes): Likewise.
	(verify_flow_info): Likewise.
	(clear_log_links): Likewise.
	* function.c (fixup_var_refs_insns): Use INSN_P.
	(compute_insns_for_mem): Likewise.
	* gcse.c (alloc_gcse_mem): Use INSN_P.
	(compute_sets): Likewise.
	(compute_hash_table): Likewise.
	(classic_gcse): Likewise.
	(cprop): Likewise.
	(insert_insn_end_bb): Likewise.
	(delete_null_pointer_checks_1): Likewise.
	* global.c (expand_preferences): Use INSN_P.
	(build_insn_chain): Likewise.
	* graph.c (node_data): Use INSN_P.
	* haifa-sched.c (priority): Use INSN_P.
	(rm_line_notes): Likewise.
	(rm_other_notes): Likewise.
	(find_insn_reg_weight): Likewise.
	(init_target_units): Likewise.
	(schedule_block): Likewise.
	(compute_block_forward_dependences): Likewise.
	(debug_dependencies): Likewise.
	(set_priorities): Likewise.
	* integrate.c (function_cannot_inline_p): Use INSN_P.
	(save_parm_insns): Likewise.
	(copy_insn_list): Likewise.
	* jump.c (mark_all_labels): Use INSN_P.
	(never_reached_warning): Likewise.
	* lcm.c (optimize_mode_switching): Use INSN_P.
	* local-alloc.c (validate_equiv_mem): Use INSN_P.
	(memref_used_between_p): Likewise.
	(update_equiv_regs): Likewise.
	(block_alloc): Likewise.
	(no_conflict_p): Likewise.
	* loop.c (scan_loop): Use INSN_P.
	(find_and_verify_loops): Likewise.
	(count_loop_regs_set): Likewise.
	(loop_reg_used_before_p): Likewise.
	(strength_reduce): Likewise.
	(recombine_givs): Likewise.
	(check_dbra_loop): Likewise.
	(load_mems): Likewise.
	(try_copy_prop): Likewise.
	* print-rtl.c (print_rtx): Use INSN_P.
	* recog.c (find_single_use): Use INSN_P.
	* reg-stack.c (stack_regs_mentioned): Use INSN_P.
	(next_flags_user): Likewise.
	(swap_rtx_condition): Likewise.
	* regmove.c (mark_flags_life_zones): Use INSN_P.
	(optimize_reg_copy_1): Likewise.
	(optimize_reg_copy_2): Likewise.
	(optimize_reg_copy_3): Likewise.
	(reg_is_remote_constant_p): Likewise.
	(fixup_match_2): Likewise.
	(regmove_optimize): Likewise.
	(fixup_match_1): Likewise.
	* regrename.c (build_def_use): Use INSN_P.
	(replace_reg_in_block): Likewise.
	(consider_use): Likewise.
	* reload.c (find_equiv_reg): Use INSN_P.
	* reload1.c (reload): Use INSN_P.
	(maybe_fix_stack_asms): Likewise.
	(calculate_needs_all_insns): Likewise.
	(reload_as_needed): Likewise.
	(emit_output_reload_insns): Likewise.
	(delete_address_reloads_1): Likewise.
	(reload_cse_regs_1): Likewise.
	(reload_combine): Likewise.
	(reload_cse_move2add): Likewise.
	* reorg.c (redundant_insn): Use INSN_P.
	(dbr_schedule): Likewise.
	* resource.c (find_dead_or_set_registers): Use INSN_P.
	(mark_target_live_regs): Likewise.
	* rtlanal.c (reg_used_between_p): Use INSN_P.
	(reg_referenced_between_p): Likewise.
	(reg_set_between_p): Likewise.
	(reg_set_p): Likewise.
	(single_set): Likewise.
	(multiple_sets): Likewise.
	(find_last_value): Likewise.
	(reg_set_last): Likewise.
	(find_reg_note): Likewise.
	(find_regno_note): Likewise.
	* sibcall.c (sequence_uses_addressof): Use INSN_P.
	* simplify-rtx.c (cselib_process_insn): Use INSN_P.
	* ssa.c (find_evaluations): Use INSN_P.
	(rename_block): Likewise.
	(rename_equivalent_regs): Likewise.
	* unroll.c (loop_find_equiv_value): Use INSN_P.
	(set_dominates_use): Likewise.
	* varasm.c (mark_constant_pool): Use INSN_P.
	(mark_constants): Likewise.
	* config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
	(alphaev4_next_group): Likewise.
	(alphaev5_next_group): Likewise.
	* config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
	(c4x_rptb_rpts_p): Likewise.
	* config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
	* config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
	(rs6000_adjust_priority): Likewise.
	* config/sh/sh.c (sh_loop_align): Use INSN_P.
	(machine_dependent_reorg): Likewise.
	(split_branches): Likewise.
	* config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.

From-SVN: r35494
2000-08-04 14:28:08 -06:00
Richard Henderson
5527bf14a5 Makefile.in (OBJS): Add doloop.o.
* Makefile.in (OBJS): Add doloop.o.
	* doloop.c: New file.

	* final.c (insn_current_reference_address): Return 0 before final.
	* flags.h (flag_branch_on_count_reg): Fix typos in commentary.
	* jump.c (any_uncondjump_p): Likewise.
	* loop.c (indirect_jump_in_function): Make static.
	(strength_reduce): Call doloop_optimize.
	(insert_bct, instrument_loop_bct): Remove.
	* loop.h (doloop_optimize): Prototype.
	* recog.c (split_all_insns): Split all INSN_P.
	* toplev.c (flag_branch_on_count_reg): Default on.

	* config/c4x/c4x.c (c4x_optimization_options): Don't set
	flag_branch_on_count_reg.
	* config/i386/i386.c (override_options): Likewise.
	* config/rs6000/rs6000.c (optimization_options): Likewise.

	* config/i386/i386.md (decrement_and_branch_on_count): Remove.
	(doloop_end): New.
	(dbra_ge): Remove, as well as all it's splitters.

	* config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
	(doloop_end): New.

	* config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
	(ia64_register_move_cost): Declare.
	* config/ia64/ia64.c (ar_lc_reg_operand): New.
	(struct ia64_frame_info): Add ar_size.
	(ia64_compute_frame_size): Set it.
	(save_restore_insns): Save and restore ar.lc.
	(ia64_register_move_cost): New, moved from header file.  Handle
	application registers.
	(REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
	(emit_insn_group_barriers): Special case doloop_end_internal.
	(ia64_epilogue_uses): Mark ar.lc live at end.
	* config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
	(AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
	(FIRST_PSEUDO_REGISTER): Make room.
	(AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
	(REG_ALLOC_ORDER): Update.
	(HARD_REGNO_MODE_OK): Update.
	(REGISTER_NAMES): Update.
	(enum reg_class): Add AR_M_REGS and AR_I_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
	(REGNO_REG_CLASS): Update.
	(LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
	(REGISTER_MOVE_COST): Move out of line.
	(PREDICATE_CODES): Update.
	* config/ia64/ia64.md (movdi patterns): Handle ar register classes.
	(addsi3_plus1_alt, adddi3_plus1_alt): New.
	(shladd_elim splitter): Allow constants in the predicate.
	(doloop_end, doloop_end_internal): New.

From-SVN: r35358
2000-07-30 16:58:03 -07:00
Alexandre Oliva
9d98a69423 Makefile.in (INSN_ATTR_H): New macro.
* Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
on insn-attr.h with it.
* genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
* insn-addr.h: New header.
(insn_addresses_): Renamed from insn_addresses.
(INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
INSN_ADDRESSES_NEW): New macros.
* genattrtab.c (write_test_expr): Use new macros.
* final.c (insn_addresses, init_insn_lengths): Likewise.
(align_fuzz, shorten_branches): Likewise.
(final): Likewise.  Do not reject new insns if their addresses
have been added to INSN_ADDRESSES.
* config/arm/arm.c, config/avr/avr.c: Use new macros.
* config/h8300/h8300.c, config/i370/i370.c: Likewise.
* config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
* config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
* config/sh/sh.c: Likewise.
(output_branchy_insn): Use INSN_ADDRESSES_NEW.

From-SVN: r35307
2000-07-28 02:17:26 +00:00
Zack Weinberg
dcacfa04fe final.c (profile_function): Do not emit profile counters in the data section, if NO_PROFILE_COUNTERS is defined.
* final.c (profile_function): Do not emit profile counters in
	the data section, if NO_PROFILE_COUNTERS is defined.
	* tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
	FUNCTION_PROFILER.

	* config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
	(FUNCTION_PROFILER): Just emit a call to mcount.

From-SVN: r35005
2000-07-13 04:40:23 +00:00
Richard Henderson
0ac76ad9eb final.c (final): Do not abort when reg-stack introduces a new insn.
* final.c (final): Do not abort when reg-stack introduces
        a new insn.

From-SVN: r34927
2000-07-08 14:17:51 -07:00
Jeffrey A Law
a12cf65042 final.c (final): Detect out of bounds array access to the insn_lengths array.
* final.c (final): Detect out of bounds array access to
        the insn_lengths array.

From-SVN: r34901
2000-07-07 07:48:38 -06:00
Hans-Peter Nilsson
efd0378bd3 final.c (final_scan_insn): Delete notes between cc0 setter and user when restarting from setter.
* final.c (final_scan_insn): Delete notes between cc0 setter and
        user when restarting from setter.

From-SVN: r34517
2000-06-13 10:06:26 -06:00
Richard Henderson
b1a9f6a07a final.c (current_output_insn): New.
* final.c (current_output_insn): New.
        (final_scan_insn): Set it.
        * output.h: Declare it.

From-SVN: r34258
2000-05-29 15:02:42 -07:00
Andrew MacLeod
ce152ef836 except.c (func_eh_entry): Add emitted field.
2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
            Andrew Haley  <aph@cygnus.com>

	* except.c  (func_eh_entry): Add emitted field.
	(new_eh_region_entry): Set emitted field to 0;
	(output_exception_table_entry): Only emit previously un-emitted data,
	and send it to the eh_data section.
	(output_exception_table): Break out common parts. Output
	exception table for entire compilation unit to eh_data section.
	(output_exception_table_data): Common parts of output_exception_table.
	Send output to eh_data section.
	(output_function_exception_table): Output exception table data for
	a single function to eh_data section.
	(free_exception_table): New external to free the table.
	* except.h (free_exception_table): Add prototype.
	(output_function_exception_table): Add prototype.
	* final.c (final_end_function): Output function exception table
	for IA64_UNWIND_INFO.
	(final_scan_insn): Emit any unwind directives for an insn.

	* frame-dwarf2.c: New file containing all DWARF 2 specific code
	from frame.c.
	* frame.c: Remove all DWARF 2 specific code.
	* config/ia64/frame-ia64.c: New file.
	(gthread_stuff): Make all gthread available with
	IA64_UNWIND_INFO.
	(dwarf_fde): Define an IA64 struct for dwarf_fde.
	(__register_frame_info, __register_frame): Move to common area of file.
	(__register_frame_info_table, __register_frame_table): Move to common i
	area.
	(__deregister_frame_info, __deregister_frame): Move to common area.
	(__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
	(read_uleb128): New version for ia64.
	(get_unwind_record): Read the next IA-64 unwind record.
	(read_R_record): Read a region header record.
	(process_a_b_reg_code): X record helper.
	(read_X_record): Read an X format record.
	(read_B_record): Read a B format record.
	(P3_record_types): List of record types matching the P3 format.
	(P7_record_types): List of record types matching the P7 format.
	(P8_record_types): List of record types matching the P8 format.
	(read_P_record): Read a P format record.
	(init_ia64_reg_loc): Set default fields for a register.
	(init_ia64_unwind_frame): Set defaults for all register records.
	(execute_one_ia64_descriptor): Execute one descriptor record.
	(rse_address_add): Calculate the position of a local reg in memory.
	(normalize_reg_loc): Turn a location descriptor into a memory address.
	(maybe_normalize_reg_loc): Only normalize a descriptor if it falls
	within a specified PC offset range.
	(get_real_reg_value): Given a register location, retrieve its value.
	(set_real_reg_value): Change the value of a register location.
	(copy_reg_value): Copy reg values, if needed.
	(copy_saved_reg_state): Copy all registers that need to be copied.
	(process_state_between): Normalize all frame register records that
	fall within the specified PC range.
	(frame_translate): Take a processed frame description, and turn
	everything into addresses.
	(build_ia64_frame_state ): Find and create frame state record for a PC.
	(get_personality): Get the personality routine for a given frame.
	(get_except_table): Get the exception table for a given frame.
	(record_name): Unwind record names for debugging.
	(print_record): Print and unwind record.
	(print_all_records): Print an entire unwind image.
	(__ia64_backtrace): Print a backtrace.
	(ia64_backtrace_helper): New function.
	(__register_frame_info_aux): New function.
	* config/ia64/crtend.asm (__do_frame_setup_aux): New function.

	* frame.h (enum unw_record_type): New unwind record types.
	(struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
	(struct unw_r_record, unwind_record): New unwind record structs.
	(struct unwind_info_ptr): Unwind information layout.
	(IA64_UNW_LOC_TYPE_*): Macros for different types for location
	descriptors.
	(struct ia64_reg_loc): Register location description.
	(struct ia64_frame_state): Location of all registers in a frame.
	(struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
	* libgcc2.c (__ia64_personality_v1): Personality routine.
	(__calc_caller_bsp): Calculate the bsp register for the caller's
	frame.
	(ia64_throw_helper): Figure out who to return to and set up the
	registers.
	(__throw): Throw routine.

	* output.h (assemble_eh_align, assemble_eh_label): New functions
	to generate EH info where we want it.
	(assemble_eh_integer): New function.
	* toplev.c (compile_file): Output module level exception table for
	non-ia64 targets.
	(main): Set exceptions_via_longjump and flag_new_exceptions based
	on IA64_UNWIND_INFO too.

	* varasm.c (assemble_eh_label): Generate a label via
	ASM_OUTPUT_EH_LABEL if it has been specified.
	(assemble_eh_align): Generate an alignment directive via
	ASM_OUTPUT_EH_ALIGN if it has been specified.
	(assemble_eh_label): Generate an integer value via
	ASM_OUTPUT_EH_type if they have been specified.
	* config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
	(ia64_init_builtins): Add __builtin_ia64_bsp
	and __builtin_ia64_flushrs.
	(ia64_expand_builtin): Add IA64_BUILTIN_BSP and
	IA64_BUILTIN_FLUSHRS.
	* config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
	IA64_BUILTIN_FLUSHRS.

	* config/ia64/ia64.md (flushrs): New insn to flush the register
	stack.  Add to unspec list.

	* config/ia64/crtbegin.asm (frame_object): Change size.
	(__do_frame_setup_aux): New function.
	* config/ia64/crtend.asm: call __do_frame_setup_aux.
	* config/ia64/t-ia64 (LIB2ADDEH): Add.
	* Makefile.in (LIB2ADDEH): Add.
	(LIB2ADD): Use LIB2ADDEH.

Co-Authored-By: Andrew Haley <aph@cygnus.com>

From-SVN: r34169
2000-05-25 15:21:51 +00:00
Richard Kenner
2bc9f98c24 final.c (final_scan_insn, [...]): Remove dangling "else" that causes "break" to be conditional.
* final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
	dangling "else" that causes "break" to be conditional.
	Also remove unneeded code at start.

From-SVN: r34082
2000-05-22 13:05:15 -04:00
Alexandre Oliva
7f251deef0 final.c (split_double): Right shift of negative values is not portable.
* final.c (split_double): Right shift of negative values is not
portable.

From-SVN: r34061
2000-05-20 23:01:00 +00:00
Zack Weinberg
fbd4035990 top level:
* diagnostic.c: Eliminate implicit int.
	* except.c, gcc.c: Add static prototypes.
	* final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
	* gensupport.c (process_rtx): Use XVEC to initialize vector
	slot of 'split'.

	* print-rtl.c: If DEBUG_REGISTER_NAMES, define static
	debug_reg_names instead of static reg_names.  If not, define
	global reg_names.
	* regclass.c: Don't define global reg_names unless
	DEBUG_REGISTER_NAMES is defined.

	* reload1.c (order_regs_for_reload): Remove unused variable.
	* varasm.c: Include output.h after defaults.h.  Define
	eh_frame_section as function of no args, not of unspecified args.

	* gcc.c: Constify argbuf; arguments to store_arg,
	process_command, main; elements of struct command and struct
	switchstr; local variables in execute, process_command, main.

cp:
	* except.c: Add static prototypes.

From-SVN: r34054
2000-05-20 19:45:36 +00:00
Jan Hubicka
51891abe62 basic-block.h (struct edge_def): New field "count".
* basic-block.h (struct edge_def): New field "count".
	(struct basic_block_def): Likewise.
	* flow.c (entry_exit_blocks): Add count fileds.
	(split_edge): Keep count information up-to-date.
        (dump_edge_info, dump_flow_info): Dump count fields.

	* final.c (count_instrumented_edges): Rename to edge from arc.
	(end_final): Update users.
	* profile.c: Include expr.h, basic-block.h.
	(struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
        (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
        (ignore_next_note, return_label_execution_count): Kill.
	(bbg_file_name, da_file_name): Kill.
        (edge_info, bb_info): New structures.
        (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
	(count_instrumented_edges, total_num_edges): Rename to edge from arc.
	(total_num_edges_instrumented): Likewise.
	(init_arc, expand_spanning_tree): Kill.
	(fill_spanning_tree, tablejump_entry_p): Kill.
	(instrument_edges):  Rewrite from instrument_arcs to use
	commit_edge_insertions infrastructure.
	(compute_branch_probabilities): Remove arguments; rewrite for
	CFG infrastructure; use rtl_dump_file directly.
	(branch_prob, find_spanning_tree): Likewise.
	(union_groups, find_group): New.
	(init_branch_prob): Make bbg_file_name and da_file_name local.
	(end_branch_prob): Use rtl_dump_file directly.
	(init_edge_profiler): Rename to edge from arc.
	(output_arc_profiler): Kill.
	(gen_edge_profiler): New.
	(output_func_start_profiler): Turn off profiling.  Make the
	constructor static when we can.
	* rtl.h (branch_prob, end_branch_prob): Update prototypes.

	* toplev.c (DFI_flow): Remove.
	(DFI_cfg, DFI_life): New.
	(dump_file): Update accordingly.
	(compile_file): Call end_branch_prob if profile_arc_flag too.
	(rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
	profiling after the CFG is built.  Move flow1 life analysis to
	DFI_life.  Always estimate remaining probabilities.

Co-Authored-By: Richard Henderson <rth@cygnus.com>

From-SVN: r34037
2000-05-19 13:51:49 -07:00
Jakub Jelinek
21835d9b74 print-rtl.c (print_rtx): Only print note line number as string if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
* print-rtl.c (print_rtx): Only print note line number as string
	if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
	* final.c (final_scan_insn): Do nothing for note line number 0.

From-SVN: r33997
2000-05-18 21:26:57 +02:00
Richard Henderson
be1bb65263 Makefile.in (final.o): Depend on BASIC_BLOCK_H.
* Makefile.in (final.o): Depend on BASIC_BLOCK_H.
	* final.c (final_end_function): Use app_disable.  Rearrange note
	handling into a switch.  Emit deleted labels.
	(output_asm_label): Generate label strings for deleted labels.
	* flow.c (tail_recursion_label_list): New.
	(find_basic_blocks_1): Set label_value_list directly.  Collect list
	of tail recursion labels from call_placeholders.  Don't add deleted
	labels to the label value list.
	(cleanup_cfg): Use free_EXPR_LIST_list.
	(flow_delete_insn_chain): Turn non-removable labels into notes.
	(flow_delete_block): Don't disable deleting the block because of
	a non-removable label.
	(tail_recursion_label_p): New.
	(merge_blocks_move_predecessor_nojumps): Don't disable the merge
	because of a label.
	(merge_blocks_move_successor_nojumps): Likewise.  Also move a
	jump table.
	(merge_blocks): Disable a merge because of tail recursion labels.
	* ifcvt.c (merge_if_block): Don't disable a merge because of a label.
	Use a more accurate measure of not merging the join block.
	(find_if_block): Don't disable conversion because of a label.
	(find_if_case_1, find_if_case_2): Likewise.
	* jump.c (duplicate_loop_exit_test): Preserve the kind of list
	element when copying.
	(squeeze_notes): Also leave EH notes.
	(mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
	REG_LABEL notes.
	(delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
	deleting a label.
	* print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
	NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
	referring to a deleted label.  Convert tail handling to a switch.
	* rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
	for NOTE_INSN_DELETED_LABEL.
	(NOTE): Fix commentary.
	* rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
	(REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
	(CODE_LABEL_NUMBER, LABEL_NAME): Update index.
	(LABEL_NUSES, LABEL_REFS): Likewise.
	* unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.

From-SVN: r33876
2000-05-12 09:26:15 -07:00
Richard Henderson
afe48e0687 final.c (current_insn_predicate): New.
* final.c (current_insn_predicate): New.
        (final_scan_insn): Set it.
        * output.h (current_insn_predicate): Declare.

From-SVN: r33790
2000-05-08 23:10:36 -07:00
Richard Kenner
bf49b1396b rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and MEM_ALIAS_SET.
* 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
2000-05-04 09:49:50 -04:00
Mumit Khan
3ac7948224 final.c (final_start_function): Fix spelling of "necessary".
2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>

	* final.c (final_start_function): Fix spelling of "necessary".

From-SVN: r33617
2000-05-02 21:52:27 +00:00
Dave Pitts
5f6d382330 Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole message in quotes.
* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
        message in quotes. Otherwise, IBM's make program treats the '#' as the
        start of a comment and ignores the remainder of the line.

        * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
        upper case.
        * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
        * cexp.y (initialize_random_junk): Likewise.
        * cppfiles.c (find_include_file): Cast alloca return value.
        * cppinit.c (initialize_standard_includes): Likewise.
        * cpplib.c (cpp_define, cpp_undef): Likewise.
        * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
        * final.c (output_asm_insn): Allow for holes in EBCDIC.
        * fold-const.c (CHARMASK): New.
        (real_hex_to_f): Use it.
        * real.c (CHARMASK): New.
        (etoasc, asctoeg): Use it.
        (asctoeg): EBCDIC lower case characters preceed upper case.

From-SVN: r33192
2000-04-16 17:54:25 -07:00
Mark Mitchell
bedda2da7f final.c (final): Use xcalloc to allocate line_note_exists.
* 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
2000-04-06 00:51:25 +00:00
Jan Hubicka
f73ad30e01 Convert ACCUMULATE_OUTGOING_ARGS to an expression.
* calls.c (PUSH_ARGS_REVERSED) Change to expression.
	(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
	(struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
	(save_fixed_argument_area, restore_fixed_argument_area):
	conditionize by #ifdef REG_PARM_STACK_SPACE only.
	(emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
	to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
	(precompute_register_parameters): Avoid #ifdefs on
	ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
	(stire_one_args): Likewise.
	(expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
	(emit_library_call_value_1): Likewise.
	(compute_argument_block_size): Align to STACK_BOUNDARY only for
	ACCUMULATE_OUTGOING_ARGS.
	* combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
	value.
	(nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
	(use_crosses_set_p): Likewise.
	* all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
	#define ACCUMULATE_OUTGOING_ARGS 1.
	* i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
	frames.
	* i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
	constants.
	(TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
	(TARGET_SWITCHES): Add push-args, no-push-args,
	accumulate-outgoing-args and no-accumulate-outgoing-args.
	(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
	* expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
	(push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
	and PUSH_ROUNDING.
	(emit_push_insn): Likewise.
	* final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
	(final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
	* function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
	(STACK_DYNAMIC_OFFSET): Define correctly for both
	ACCUMULATE_OUTGOING_ARGS and normal mode.
	* invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
	* tm.texi (PUSH_ARGS): Document.
	(ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.

From-SVN: r32803
2000-03-29 13:10:44 +00:00
Jakub Jelinek
7d167afd46 sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for comparison if regno's are equal.
* sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
	comparison if regno's are equal.
	* calls.c (initialize_argument_informat): Add ecf_flags argument.
	Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
	(expand_call): Update caller.
	Avoid making a sibling call if argument size of the callee is larger
	than argument size of the caller.
	Call hard_function_value with outgoing set if in sibcall pass.
	Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.

	* final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
	Change LEAF_REGISTERS from an array initializer to actual array
	identifier. Move static global variable into the function.
	(leaf_function_p): Allow SIBLING_CALL_P calls even outside of
	sequences for leaf functions.
	* global.c (global_alloc): Likewise.
	* tm.texi (LEAF_REGISTERS): Update documentation.

	* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
	TARGET_FLAT leaf disabling hack.
	(LEAF_REGISTERS): Changed from an array initializer to actual array
	identifier to avoid duplication and remove the above hack.
	(FUNCTION_OK_FOR_SIBCALL): Define.
	* config/sparc/sparc.md (sibcall): New attr type. Use it almost
	always like call attribute.
	(eligible_for_sibcall_delay): New attribute.
	(sibcall): New delay type.
	(sibcall, sibcall_value, sibcall_epilogue): New expands.
	(sibcall_symbolic_sp32, sibcall_symbolic_sp64,
	sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
	* config/sparc/sparc.c (sparc_leaf_regs): New array.
	(eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
	New functions.
	(output_function_epilogue): Move part of the code into
	output_restore_regs.
	(ultra_code_from_mask, ultrasparc_sched_reorder): Handle
	TYPE_SIBCALL.
	* sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
	prototypes.

From-SVN: r32730
2000-03-24 22:48:01 +01:00
Jeffrey A Law
0a1c58a25a Sibling call optimizations.
Co-Authored-By: Richard Henderson <rth@cygnus.com>

From-SVN: r32612
2000-03-17 14:40:45 -08:00
Kaveh R. Ghazi
3cce094dd9 rtl.h (rtunion_def): Constify member `rtstr'.
* rtl.h (rtunion_def): Constify member `rtstr'.
	(emit_line_note_after, emit_line_note, emit_line_note_force,
	emit_note, decode_asm_operands): Constify.

	* cse.c (canon_hash): Likewise.

	* dbxout.c (dbxout_block): Likewise.

	* diagnostic.c (file_and_line_for_asm, v_error_for_asm,
	v_warning_for_asm): Likewise.

	* dwarfout.c (function_start_label): Likewise.

	* emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
	emit_line_note_force): Likewise.

	* final.c (last_filename, asm_insn_count, final_scan_insn,
	output_source_line): Likewise.

	* function.h (struct emit_status): Likewise.

	* gcse.c (hash_expr_1): Likewise.

	* genattr.c (gen_attr, main): Likewise.

	* genattrtab.c (struct function_unit, current_alternative_string,
	write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
	attr_numeral, check_attr_test, check_attr_value,
	convert_set_attr_alternative, convert_set_attr,
	compute_alternative_mask, simplify_by_exploding, gen_attr,
	gen_unit): Likewise.

	* genflags.c (gen_insn): Likewise.

	* gengenrtl.c (type_from_format): Likewise.

	* genopinit.c (gen_insn): Likewise.

	* genoutput.c (n_occurrences, process_template, process_template):
	Likewise.

	* ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
	ggc_set_mark, ggc_get_size): Likewise.

	* objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.

	* optabs.c (init_one_libfunc): Likewise.

	* output.h (assemble_start_function): Likewise.

	* recog.c (decode_asm_operands): Likewise.

	* toplev.c (rest_of_compilation): Likewise.

	* tree.h (emit_line_note_after, emit_line_note,
	emit_line_note_force): Likewise.

	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	asm_emit_uninitialised, assemble_start_function,
	assemble_variable, const_hash, compare_constant_1,
	find_pool_constant, mark_constant_pool, assemble_alias): Likewise.

	* xcoffout.h (DBX_FINISH_SYMBOL): Likewise.

	* alpha/alpha.md (call_vms, call_value_vms): Likewise.

	* arm/aof.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/aout.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
	arm_dllimport_name_p): Likewise.

	* arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
	Likewise.

	* arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.

	* arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
	arm_mark_dllexport, arm_mark_dllimport,
	arm_pe_encode_section_info): Likewise.

	* arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
	ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/thumb.c (thumb_function_prologue): Likewise.

	* arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.

	* avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.

	* fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/i386-protos.h (asm_output_function_prefix): Likewise.

	* i386/i386.c (asm_output_function_prefix): Likewise.

	* i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
	ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
	ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.

	* m32r/m32r.c (m32r_encode_section_info): Likewise.

	* mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mcore/mcore.c (mcore_encode_section_info): Likewise.

	* mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/mips.h (ASM_OUTPUT_IDENT): Likewise.

	* mips/mips.md (movdi, movsi): Likewise.

	* mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII): Likewise.

	* rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
	output_mi_thunk, output_toc): Likewise.

	* rs6000/rs6000.md (movsi): Likewise.

	* rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.

	* tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.

	* v850/v850.c (print_operand, print_operand_address,
	v850_encode_data_area): Likewise.

ch:
	* grant.c (globalize_decl): Constify a char*.

cp:
	* decl2.c (finish_objects): Constify a char*.

	* method.c (emit_thunk): Likewise.

From-SVN: r32388
2000-03-07 20:39:10 +00:00
Jason Merrill
deb5e2801f stmt.c (is_body_block): Move...
* stmt.c (is_body_block): Move...
        * dwarfout.c, dwarf2out.c: ...from here.
        * tree.h: Declare it.
        * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
        * final.c (final_start_function): Do call remove_unnecessary_notes
        when scheduling.

From-SVN: r32324
2000-03-04 04:32:35 -05:00
Jason Merrill
fcd7f76b28 dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
* dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
        (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
        (gen_decl_die): Likewise.
        * dwarfout.c (dwarfout_file_scope_decl): Likewise.
        (output_decl): Likewise.

        * varasm.c (make_function_rtl): If we change the name used in the
        rtl, update DECL_ASSEMBLER_NAME accordingly.
        (make_decl_rtl): Likewise.

        * toplev.c (rest_of_compilation): Tweak formatting.

        * toplev.c (rest_of_compilation): find_loop_tree_blocks before
        remove_unnecessary_notes.
        (debug_ignore_block): New fn.
        * toplev.h: Declare it.
        * emit-rtl.c (remove_unncessary_notes): Call it.
        * dwarf2out.c (dwarf2out_ignore_block): New fn.
        * dwarf2out.h: Declare it.
        * final.c (final_start_function): Don't call remove_unnecessary_notes
        if we did insn scheduling.

From-SVN: r32320
2000-03-03 19:48:46 -05:00
Martin v. Löwis
00262c8ac7 c-decl.c (current_function_decl): Move to toplev.c.
* c-decl.c (current_function_decl): Move to toplev.c.
	(init_decl_processing): Don't add current_function_decl as a ggc
	root here.
	* dbxout.c (dbxout_symbol): Change return type to int.
	(dbxout_symbol_location, dbxout_syms): Likewise.
	(dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
	any locals. Use current_function_func_begin_label if set.
	* dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
	* dwarf2out.c (dwarf2out_begin_prologue): Set
	current_function_func_begin_label.
	* final.c (final_start_function): Reset it.
	* toplev.c (current_function_decl): Define it here.
	(current_function_func_begin_label): New variable.
	(main): Add both as ggc roots.
	* tree.h (current_function_func_begin_label): Declare.
	* ch/decl.c (current_function_decl): Move to toplev.c.
	* cp/decl.c (current_function_decl): Move to toplev.c.
	* f/com.c (current_function_decl): Move to toplev.c.
	* java/decl.c (current_function_decl): Move to toplev.c.

From-SVN: r32268
2000-02-29 23:33:50 +00:00
Mark Mitchell
18c038b9ca emit-rtl.c (remove_unncessary_notes): Remove notes for empty blocks.
* emit-rtl.c (remove_unncessary_notes): Remove notes for empty
	blocks.
	* final.c (next_block_index): Remove.
	(max_block_depth): Likewise.
	(pending_blocks): Likewise.
	(init_final): Don't initialize them.
	(final_start_function): Don't set next_block_index.  Set up
	BLOCK_NUMBER.
	(final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
	* function.h (number_blocks): New function.
	* function.c (get_block_vector): New function.
	(identify_blocks): Use it.
	(reorder_blocks): Set NOTE_BLOCK.
	(number_blocks): New function.
	* tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
	* tree.h (BLOCK_NUMBER): New macro.
	(tree_block): Add block_num field.
	* dbxout.c (next_block_number): Remove.
	(dbxout_init): Don't set it.
	(dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
	set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
	block numbers.
	* toplev.c (rest_of_compilation): Always call
	find_loop_tree_blocks.  Fix indentation.
	* dwarf2out.c (next_block_number): Remove.
	(gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
	to determine block numbers.
	(gen_inlined_subroutine_die): Likewise.
	(gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
	(decls_for_scope): Don't increment next_block_number.
	* dwarfout.c (next_block_number): Remove.
	(output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
	to determine block numbers.
	(output_inlined_subroutine_die): Likewise.
	(output_block): Only output blocks that have TREE_ASM_WRITTEN set.
	(output_decls_for_scope): Don't increment next_block_number.
	* sdbout.c (next_block_number): Remove.
	(sdbout_block): Use BLOCK_NUMBER.
	(sdbout_begin_block): Simplify.
	* xcoffout.c (next_block_number): Remove.
	(xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
	(xcoffout_begin_block): Don't set next_block_number.
	(xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
	next_block_number.

From-SVN: r32228
2000-02-28 09:51:42 +00:00
Jeff Law
3b708058ed Fix copyrights.
From-SVN: r32175
2000-02-25 23:23:30 -07:00
J"orn Rennecke
2148624a44 final.c (shorten_branches): Make value passed to LABEL_ALIGN conform to documentation.
* final.c (shorten_branches): Make value passed to LABEL_ALIGN
	conform to documentation.
	* sh.h (LABEL_ALIGN): If aligning loops, call sh_label_align
	to check for special cases.
	* sh-protos.h (sh_label_align): Declare.
	* sh.c (sh_label_align): Define.

From-SVN: r32114
2000-02-23 17:18:15 +00:00
Kaveh R. Ghazi
962f1324bd calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
* calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.

        * except.c (eh_regs): Likewise.

        * final.c (output_operand): Likewise.

        * fold-const.c (target_isinf, target_isnan): Likewise.

From-SVN: r31490
2000-01-18 22:45:16 +00:00
Kaveh R. Ghazi
711d877c9e eh-common.h: PROTO -> PARAMS.
* eh-common.h: PROTO -> PARAMS.
	* emit-rtl.c: Likewise.
	* errors.c: Likewise.
	* errors.h: Likewise.
	* except.c: Likewise.
	* except.h: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* final.c: Likewise.
	* fix-header.c: Likewise.
	* flow.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* gcc.c: Likewise.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.

From-SVN: r31419
2000-01-14 17:14:43 +00:00
Kaveh R. Ghazi
7bdb32b97e Makefile.in (optabs.o): Depend on real.h
* Makefile.in (optabs.o): Depend on real.h
	(resource.o): Depend on insn-attr.h

	* builtins.c (result_vector): Wrap prototype in macro conditions
	governing definition and use.

	* c-common.c: Include tm_p.h.

	* c-lex.c: Likewise.

	* elfos.h: Constify a char*.

	* final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
	(get_attr_length, shorten_branches, profile_after_prologue): Mark
	parameter with ATTRIBUTE_UNUSED.

	* fold-const.c (exact_real_inverse): Wrap variable `i' in
	CHECK_FLOAT_VALUE.

	* haifa-sched.c (schedule_insns): Mark parameter with
	ATTRIBUTE_UNUSED.

	* optabs.c: Include real.h.

	* real.h (ereal_atof): Add prototype arguments.

	* resource.c: Include insn-attr.h.

	* sdbout.c (sdbout_queue_anonymous_type,
	sdbout_dequeue_anonymous_types): Wrap in macro
	SDB_ALLOW_FORWARD_REFERENCES.
	(sdbout_init, sdbout_start_new_source_file): Mark parameter with
	ATTRIBUTE_UNUSED.

	* stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.

	* stupid.c: Include tm_p.h.

	* tree.c (real_value_from_int_cst): Mark parameter with
	ATTRIBUTE_UNUSED.

cp:
	* lex.c: Include tm_p.h.

ch:
	* lex.c: Include tm_p.h.

From-SVN: r31308
2000-01-10 23:48:03 +00:00
Denis Chertykov
a30caf5c2c final.c (shorten_branches): Correctly compute length of asms without operands.
* final.c (shorten_branches): Correctly compute length of
        asms without operands.

From-SVN: r31230
2000-01-05 00:01:00 -07:00
Kaveh R. Ghazi
272df862c2 Makefile.in (toplev.o): Depend on loop.h.
* Makefile.in (toplev.o): Depend on loop.h.

	* dwarfout.c: Include tm_p.h.

	* emit-rtl.c (restore_emit_status): Mark parameter with
	ATTRIBUTE_UNUSED.

	* final.c (final_scan_insn): Likewise.

	* flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
	flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
	flow_depth_first_order_compute, flow_loop_pre_header_find,
	flow_loop_tree_node_add, flow_loops_tree_build,
	flow_loop_level_compute, flow_loops_level_compute,
	flow_loop_outside_edge_p): Add prototypes.
	(recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.

	* ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
	Mark with ATTRIBUTE_NORETURN.

	* hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.

	* local-alloc.c (no_conflict_p): Likewise.

	* loop.c (insert_bct): Hide definitions of variables with hidden
	usage.
	(note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.

	* regclass.c (memory_move_secondary_cost): Mark variable `mem'
	with ATTRIBUTE_UNUSED.
	(record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
	(reg_scan): Likewise.

	* reload.c (find_reloads): Remove unused variables `changed'.

	* reload1.c (reload_reg_class_lower): Don't unnecessarily cast
	away const-ness.
	(allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
	Remove unused variable `insn'.

	* toplev.c: Include loop.h.
	(report_file_and_line): Remove unnecessary prototype.

	* tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.

	* unroll.c (biv_total_increment): Likewise.

From-SVN: r31085
1999-12-24 14:04:54 +00:00
Catherine Moore
8cd0faaf32 defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
* defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
        * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
        * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
        * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
        * jump.c (delete_unreferenced_labels): Don't delete if
        LABEL_ALTERNATE_NAME is set.
        * print-rtl.c (print_rtx): Dump alternate name.
        * rtl.def (CODE_LABEL): Change format to "iuuis00s".
        * rtl.h (LABEL_ALTERNATE_NAME): Define.
        * rtl.texi (LABEL_ALTERNATE_NAME): Document.
        * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.

From-SVN: r30382
1999-11-03 16:55:51 -05:00
Kaveh R. Ghazi
36f0e0a60c final.c (peephole): Delete prototype.
* final.c (peephole): Delete prototype.

        * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
        (pre_insert_copies): Remove unused variable `bb'.

        * genrecog.c (debug_decision_0, debug_decision_list, main): Add
        prototypes.

        * output.h (peephole): Add prototype.

From-SVN: r30144
1999-10-24 19:23:11 +00:00
Kaveh R. Ghazi
ca3075bd73 cpplib.c (if_directive_nameo): Add static prototype.
* cpplib.c (if_directive_nameo): Add static prototype.

	* cse.c (cse_insn): Remove unused variable `p'.

	* except.c (create_rethrow_ref, push_entry,
	receive_exception_label, new_eh_region_entry, find_func_region,
	clear_function_eh_region, process_nestinfo): Add static prototypes.
	(get_reg_for_handler): Hide definition.
	(process_nestinfo): Initialize variable `extra_handlers'.

	* expr.h (expand_builtin_longjmp): Add extern prototype.

	* final.c (final_addr_vec_align, align_fuzz): Add static prototypes.

	* function.c (prepare_function_start): Likewise.
	(pop_function_context_from): Mark parameter `context' with
	ATTRIBUTE_UNUSED.
	(push_temp_slots_for_block, flush_addressof): Hide definition.

	* gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
	solve_program_flow_graph, calculate_branch_probs,
	function_summary, main, fancy_abort): Add prototypes.

	* gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
	(add_hash): Constify a char*.

	* ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
	ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
	ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.

	* integrate.c (expand_inline_function_eh_labelmap): Likewise.

	* lists.c (free_list, zap_lists): Likewise.

From-SVN: r29783
1999-10-03 16:28:33 +00:00
Bernd Schmidt
19af645506 Delete !REGISTER_CONSTRAINTS code
From-SVN: r29753
1999-10-01 10:00:33 +00:00
Kaveh R. Ghazi
f0305a2b79 combine.c (gen_rtx_combine): Add missing call to va_end().
* combine.c (gen_rtx_combine): Add missing call to va_end().

	* final.c (asm_fprintf): Likewise.

	* genattrtab.c (attr_rtx): Likewise.

cp:
	* lex.c (compiler_error): Add missing call to va_end().

From-SVN: r29667
1999-09-26 11:40:53 +00:00
Bernd Schmidt
6baf1cc8f8 Make it possible to prototype port-specific functions (and convert i386 to use this)
From-SVN: r29514
1999-09-20 10:00:03 +00:00
Mark Mitchell
bf43101eb6 except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER, not NOTE_BLOCK_NUMBER.
* except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
	not NOTE_BLOCK_NUMBER.
	(expand_eh_region_end): Likewise.
	(find_exception_handler_labels): Likewise.
	(scan_region): Likewise.
	(exception_optimize): Likewise.
	(update_rethrow_references): Likewise.
	(set_insn_eh_region): Likewise.
	* final.c (final_scan_insn): Likewise.
	* flow.c (make_edges): Likewise.
	* integrate.c (expand_inline_function): Likewise.
	* print-rtl.c (print_rtx): Likewise.

From-SVN: r29418
1999-09-14 23:51:34 +00:00
Richard Henderson
4bbf910eef recog.h (INSN_OUTPUT_FORMAT_*): New.
* recog.h (INSN_OUTPUT_FORMAT_*): New.
        (struct insn_data): Merge `template' and `outfun' into `output'.
        Add `output_format'.
        * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
        (struct data): Remove `outfun'; add `output_format'.
        (name_for_index): Remove declaration.
        (output_insn_data): Handle output formats.
        (process_template): Emit the bare array for @.
        (gen_expand, gen_split): Set output_format to NONE.
        * output.h (get_insn_template): Declare.
        * final.c (get_insn_template): New.
        (final_scan_insn): Use it.
        * toplev.c (compile_file): Likewise.

        * c4x/c4x.c (c4x_process_after_reload): Likewise.
        * i860/i860.c (output_delayed_branch): Likewise.
        (output_delay_insn): Likewise.

From-SVN: r29389
1999-09-13 21:19:34 -07:00
Richard Henderson
a995e389c4 Replace insn_foo with insn_data.foo.
From-SVN: r29358
1999-09-12 05:46:08 -07:00
Richard Henderson
1ccbefcef2 Replace recog_foo with recog_data.foo.
From-SVN: r29349
1999-09-11 18:51:28 -07:00
Andreas Schwab
d0f3d9c2ae * final.c (shorten_branches): Fix last change.
From-SVN: r29160
1999-09-07 08:10:42 +00:00
Jeff Law
c5c7673583 Merge in gcc2-ss-010999
From-SVN: r29150
1999-09-06 23:49:18 -06:00
Richard Henderson
3de900268e dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
* dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
	* dwarf2out.c (dwarf2out_frame_init): Likewise.
	* final.c (shorten_branches): Likewise.
	* global.c (global_alloc): Likewise.
	* haifa-sched.c (build_control_flow): Likewise.
	* stmt.c (check_for_full_enumeration_handling): Likewise.
	(estimate_case_costs): Likewise.

From-SVN: r29091
1999-09-03 23:22:50 +00:00
Geoffrey Keating
efa3896ad4 flags.h: New variables align_loops...
* flags.h: New variables align_loops, align_loops_log,
align_jumps, align_jumps_log, align_labels, align_labels_log,
align_functions, align_functions_log.
* toplev.c: Define them.
(f_options): Handle -falign-* when they have no argument.
(main): Add logic to set variables for -falign-functions,
-falign-jumps, -falign-labels, -falign-loops.
Make it -fsched-verbose=<n> and -finline-limit=<n>.
(display_help): Change help to match options.
* final.c (LABEL_ALIGN): Default to align_labels_log.
(LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
(LOOP_ALIGN): Default to align_loops_log.
(LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
(LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
* varasm.c (assemble_start_function): Handle align_functions.

* config/sparc/sparc.h: Don't declare sparc_align_*.
Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
(DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
sparc.c.
(FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
it's a promise.
* config/sparc/sparc.c: Delete sparc_align_loops,
sparc_align_jumps, sparc_align_funcs and the corresponding string
variables.
(sparc_override_options): Default align_functions on ultrasparc.
Delete -malign-* handling.

* config/mips/mips.c (override_options):  On 64-bit targets,
try to align code to 64-bit boundaries.
(print_operand): New substitution, %~,
which aligns labels to align_labels_log.
* config/mips/mips.md (div_trap_normal): Use %~.
(div_trap_mips16): Likewise.
(abssi): Likewise.
(absdi2): Likewise.
(ffssi2): Likewise.
(ffsdi2): Likewise.
(ashldi3_internal): Likewise.
(ashrdi3_internal): Likewise.
(lshrdi3_internal): Likewise.
(casesi_internal): Likewise.

Plus corresponding documentation changes.

From-SVN: r29045
1999-09-02 05:42:06 +00:00
Richard Henderson
ede7cd4499 backport: Makefile.in (STAGESTUFF): Add *.peephole2.
Merge peephole2 from new_ia32_branch:
        * Makefile.in (STAGESTUFF): Add *.peephole2.
        (mostlyclean): Likewise.
        (recog.o): Depend on resource.h.

        * final.c (peephole): Conditionalize decl on HAVE_peephole.
        (final_scan_insn): Likewise for the invocation of peephole.
        * genconfig.c (main): Look for peephole and peephole2 patterns.
        Emit HAVE_peephole* accordingly.
        * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
        * flags.h (flag_peephole2): Declare.
        * toplev.c: New pass peephole2.  New flag -fpeephole2.

        * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
        * gencodes.c (main): Likewise.
        * genextract.c (main): Likewise.
        * genoutput.c (main): Likewise.
        * genemit.c (max_operand_1): Look for the max scratch operand.
        (gen_rtx_scratch): New.
        (gen_exp): Use it, and pass on new arg subroutine_type.
        (gen_expand): Take max scratch into account.
        (gen_split): Emit peephole2 functions.
        (output_peephole2_scratch): New.
        (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
        * genrecog.c (routine_type): Add PEEPHOLE2.
        (IS_SPLIT): New.
        (make_insn_sequence): Match outer parallel for peep2.  Discard
        top level scratches and dups.
        (add_to_sequence): New args insn_type and top.  Update all callers.
        Handle toplevel peep2 matching insns.
        (write_subroutine): Handle peep2.
        (write_tree_1): Likewise.
        (write_tree): Likewise.
        (main): Likewise.
        (change_state): New arg afterward.  Update all callers.
        Handle matching separate insns.
        * recog.c (recog_next_insn): New.
        (peephole2_optimize): New.
        * rtl.def (DEFINE_PEEPHOLE2): New.
        * resource.c (find_free_register): New argument last_insn.  Use it
        to find a register available through the entire span.
        * resource.h (find_free_register): Update prototype.

From-SVN: r29015
1999-08-31 13:37:09 -07:00
Zack Weinberg
ef178af3a4 rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and bounds- check RTL accesses if --enable-checking.
1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>

	* rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
	bounds- check RTL accesses if --enable-checking.
	(RTVEC_ELT): Bounds check if --enable-checking.
	(XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
	XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
	(XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
	GET_NUM_ELEM.
	(X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
	X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.

	(ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
	(NOTE_SOURCE_FILE): Use X0STR.
	(NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
	MEM_ALIAS_SET): Use X0INT.
	(NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
	JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
	Use X0EXP.
	* real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
	* rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
	(rtl_check_failed_bounds, rtl_check_failed_type1,
	rtl_check_failed_type2, rtvec_check_failed_bounds): New
	functions.
	(fancy_abort): Fix comment.

	* cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
	(cse_insn): Decrement LABEL_NUSES for jump target before
	deleting jump insn.
	* emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
	* final.c (alter_subreg): Compute regno before changing x to
	REG; set REGNO(x) after changing it.
	* flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
	notes containing CONST_INTs.
	(delete_eh_regions): Use NOTE_EH_HANDLER.
	* function.c (put_reg_into_stack): Make reg a MEM before
	initializing it.
	(fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
	delete insn.
	(gen_mem_addressof): Make reg a MEM before initializing it.
	* integrate.c (copy_rtx_and_substitute): Copy '0' slots with
	X0WINT.
	* local-alloc.c (update_equiv_regs): Zap REG_NOTES before
	deleting an insn, not after.
	(block_alloc): Only look at PATTERN(insn) if we have to, and
	only if it's format class 'i'.
	* loop.c (check_dbra_loop): Check bl->biv->add_val is a
	CONST_INT before using its INTVAL.
	* print-rtl.c (print_rtx): Use X0STR.
	* regmove.c (fixup_match_1): Don't look at PATTERN of
	non-class-'i' insn chain elements.
	* reload.c (loc_mentioned_in_p): Take address of
	in->fld[1].rtx directly.
	* reload1.c (reload): Change reg to a MEM before initializing
	it.
	* varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
	have no names.
	* config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.

From-SVN: r29008
1999-08-31 19:39:10 +00:00
Kaveh R. Ghazi
a2957e1d3e Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
* Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
	(getpwd.o): Remove target.

	* getpwd.c: Delete file.  Its in libiberty now.

	* dbxout.c (getpwd): Don't prototype.
	* dwarf2out.c (getpwd): Likewise
	* dwarfout.c (getpwd): Likewise
	* final.c (getpwd): Likewise.
	* protoize.c (getpwd): Likewise.

From-SVN: r28999
1999-08-31 01:01:15 +00:00
Zack Weinberg
987009bf0d system.h: Don't redefine abort or trim_filename.
1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>

	* system.h: Don't redefine abort or trim_filename.
	* rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
	or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
	whether or not __FUNCTION__ is available.
	* tree.h: Duplicate rtl.h's definition of abort, for files
	that don't include rtl.h.  Delete all code to perform type
	checking with a compiler other than GCC.
	* varray.h: Delete all code to perform type checking with a
	compiler other than GCC.  Make VARRAY_CHECK() always evaluate
	its arguments exactly once, using a statement expression.
	Adjust the VARRAY_<type> accessor macros to match.
	* toplev.h (fatal_insn, fatal_insn_not_found): Kill.
	(_fatal_insn, _fatal_insn_not_found): New fns, take info on
	caller's location.  Define fatal_insn and fatal_insn_not_found
	as macros that use _fatal_insn and _fatal_insn_not_found.
	(fancy_abort, trim_filename): Kill prototypes.

	* rtl.c (trim_filename): Move here from toplev.c.
	(fancy_abort): New function.
	(DIR_SEPARATOR): Provide default definition.
	* tree.c (tree_check_failed, tree_class_check_failed): Go
	through fancy_abort.
	(tree_check, tree_class_check, cst_or_constructor_check,
	expr_check): Delete.
	* varray.c (varray_check_failed): New function.
	* toplev.c (fatal_insn, fatal_insn_not_found): Replace with
	_fatal_insn and _fatal_insn_not_found.  Go through
	fancy_abort.
	(trim_filename, fancy_abort): Delete.

	* builtins.c (expand_builtin_args_info): Report ICE with abort.
	* except.c (start_catch_handler): Report ICE with error/abort
	combo.
	* final.c (output_operand_lossage): Likewise.
	* flow.c (verify_flow_info): Likewise.

	* gcc.c: Prototype fatal.
	* gengenrtl.c: Undef abort after including rtl.h not system.h.
	* genattr.c, genattrtab.c, genemit.c, genextract.c,
	genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
	Don't define fancy_abort.

From-SVN: r28889
1999-08-26 05:18:44 +00:00
Kaveh R. Ghazi
6a651371a7 Warning fixes:
* calls.c (emit_call_1): Mark parameter `stack_size' with
	ATTRIBUTE_UNUSED.
	(expand_call): Initialize variable `insn'.
	(emit_library_call): Likewise for variable `high_to_save'.
	(emit_library_call_value): Likewise.
	(store_one_arg): Likewise for variables `lower_bound' and
	`upper_bound'.

	* combine.c (try_combine): Likewise for variables `i2_code_number'
	and `other_code_number'.
	(find_split_point): Likewise for variables `pos', `unsignedp' and
	`inner'.
	(simplify_if_then_else): Likewise for variables `op' and `c1'.
	(simplify_and_const_int): Remove unused variable `width'.
	(merge_outer_ops): Likewise.

	* cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
	HOST_WIDE_INT' when comparing against one.
	(simplify_relational_operation): Likewise.
	(cse_insn): Initialize variables `src_eqv_volatile',
	`src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.

	* final.c (init_final): Constify parameter `filename'.
	(final_start_function): Mark parameter `optimize' with
	ATTRIBUTE_UNUSED.
	(profile_function): Likewise for parameters `first' and `optimize'.
	(output_source_line): Likewise for parameter `file'.

	* integrate.c (subst_constants): Cast a value to `size_t' when
	comparing against one.
	(mark_stores): Initialize variable `mode'.  Cast a value to
	`size_t' when comparing against one.

	* integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.

	* loop.c (move_movables): Initialize variable `first'.
	(strength_reduce): Likewise for variable `increment'.
	(check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
	value to `size_t' when comparing against one.
	(load_mems): Initialize variable `end_label'.

	* output.h (init_final): Constify parameter.

	* reload.c (decompose): Initialize variable `base'.

	* reload1.c (reload): Likewise for variable `is_scalar'.
	(spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
	(choose_reload_regs): Initialize variable `mode'.
	(emit_reload_insns): Likewise for variable `store_insn'.
	(reload_cse_noop_set_p): Mark parameter `insn' with
	ATTRIBUTE_UNUSED.
	(reload_combine): Initialize variable `set'.

	* unroll.c (unroll_loop): Likewise for variable `local_label'.
	(copy_loop_body): Cast a value to `size_t' when comparing against
	one.

	* varasm.c (assemble_variable): Initialize variable `size_tree'.
	(const_hash): Add an `else abort()' in an if-else-if-else sequence.
	(remove_from_pending_weak_list): Mark parameter `name' with
	ATTRIBUTE_UNUSED.

From-SVN: r28860
1999-08-25 13:37:46 +00:00
Art Haas
b6c8689d9b final.c (output_addr_const): Handle case where ASM_OPEN_PAREN and ASM_CLOSE_PAREN are empty strings.
* final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
        and ASM_CLOSE_PAREN are empty strings.

From-SVN: r28833
1999-08-24 20:52:15 -06:00
Kaveh R. Ghazi
6f7d635c0e rtl.h (rtx_format): Constify a char*.
* rtl.h (rtx_format): Constify a char*.

	* rtl.c (rtx_format): Likewise.
	(copy_rtx, copy_most_rtx, read_rtx): Likewise.
	(init_rtl): Use accessor macro, not `rtx_format'.

	* alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
	char*.

	* caller-save.c (mark_referenced_regs): Likewise.

	* combine.c (subst, make_compound_operation, known_cond,
	gen_rtx_combine, update_table_tick, get_last_value_validate,
	use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.

	* cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
	refers_to_p, canon_reg, fold_rtx, cse_process_notes,
	count_reg_usage): Likewise.

	* emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
	Likewise.

	* final.c (leaf_renumber_regs_insn): Likewise.

	* flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
	dump_edge_info, count_reg_references): Likewise.

	* function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
	fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
	Likewise.

	* gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
	oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
	add_label_notes): Likewise.

	* genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
	clear_struct_flag, count_sub_rtxs, count_alternatives,
	compares_alternatives_p, contained_in_p, walk_attr_value,
	write_expr_attr_cache): Likewise.

	* genconfig.c (walk_insn_part): Likewise.

	* genemit.c (max_operand_1, gen_exp): Likewise.

	* genextract.c (walk_rtx): Likewise.

	* genflags.c (num_operands): Likewise.

	* genoutput.c (scan_operands): Likewise.

	* genpeep.c (match_rtx): Likewise.

	* genrecog.c (add_to_sequence): Likewise.

	* haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
	Likewise.

	* integrate.c (save_constants, copy_for_inline,
	copy_rtx_and_substitute, subst_constants, restore_constants):
	Likewise.

	* jump.c  (mark_jump_label, invert_exp, redirect_exp,
	rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.

	* local-alloc.c (contains_replace_regs, memref_referenced_p):
	Likewise.

	* loop.c (record_excess_regs, rtx_equal_for_loop_p,
	add_label_notes, replace_call_address, count_nonfixed_reads,
	invariant_p, find_single_use_in_loop, find_mem_givs,
	find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
	Likewise.

	* print-rtl.c (reg_names, print_rtx): Likewise.

	* recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.

	* reg-stack.c (stack_regs_mentioned_p, record_label_references,
	record_reg_life_pat, swap_rtx_condition, goto_block_pat,
	print_blocks): Likewise.

	* regclass.c (fix_register, record_address_regs,
	reg_scan_mark_refs): Likewise.

	* regmove.c (stable_but_for_p): Likewise.

	* reload.c (loc_mentioned_in_p, operands_match_p,
	find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
	copy_replacements, refers_to_regno_for_reload_p,
	refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
	reload_when_needed_name, reg_class_names, debug_reload_to_stream):
	Likewise.

	* reload1.c (eliminate_regs, scan_paradoxical_subregs,
	delete_address_reloads_1, count_occurrences,
	reload_cse_mem_conflict_p, reload_combine_note_use,
	add_auto_inc_notes): Likewise.

	* resource.c (mark_referenced_resources, mark_set_resources):
	Likewise.

	* rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
	reg_mentioned_p, regs_set_between_p, modified_between_p,
	modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
	rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
	may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
	jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.

	* sched.c (sched_analyze_2, attach_deaths): Likewise.

	* stupid.c (stupid_mark_refs): Likewise.

	* unroll.c (remap_split_bivs): Likewise.

	* varasm.c (mark_constants): Likewise.

	* a29k/a29k.c (uses_local_reg_p): Likewise.

	* alpha/alpha.c (summarize_insn): Likewise.

	* arm/arm.c (symbol_mentioned_p, label_mentioned_p,
	eliminate_lr2ip): Likewise.

	* arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.

	* i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
	reg_mentioned_in_mem): Likewise.

	* ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
	symbolic_reference_mentioned_p): Likewise.

	* romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.

	* sh/sh.c (regs_used, mark_use): Likewise.

	* vax/vax.c (vax_rtx_cost): Likewise.

From-SVN: r28784
1999-08-20 23:05:25 +00:00
Bernd Schmidt
49ad7cfa7a Include function.h in most files.
Include function.h in most files.  Remove most of the global variables
duplicated in function.h.  Add accessor macros for them which access
current_function.  Delete INLINE_HEADER rtx and related code, replace
with code using struct function to store inlining related data.

From-SVN: r28626
1999-08-09 14:00:21 +00:00
J"orn Rennecke
edd6ede777 final.c (shorten_branches): Don't add an alignment for loops that have no label inside.
* final.c (shorten_branches): Don't add an alignment for loops
	that have no label inside.

From-SVN: r28517
1999-08-04 23:13:14 +01:00
Nick Clifton
fe0503eabf Implement new macro: ASM_FPRINTF_EXTENSIONS
From-SVN: r28263
1999-07-26 09:25:29 +00:00
Bernd Schmidt
463a83844b Fix INTEL_SYNTAX output for i386 backend
From-SVN: r28170
1999-07-19 08:43:33 +00:00
Richard Earnshaw
1b4d9ecdf0 final.c (shorten_branches): Don't try to split an insn that has been deleted.
H
        * final.c (shorten_branches): Don't try to split an insn that has
        been deleted.

From-SVN: r27691
1999-06-21 17:22:35 -06:00
J"orn Rennecke
ea3cbda501 sh.md (insv): Use copy_addr_to_reg.
* sh.md (insv): Use copy_addr_to_reg.
	* final.c (insn_lengths_max_uid) New variable.
	(init_insn_lengths, shorten_branches): Set it.
	(get_attr_lengths): Test insn uid against insn_lengths_max_uid.

From-SVN: r26676
1999-04-27 13:23:20 +01:00
John Wehle
54ff41b717 output.h (current_function_is_leaf, [...]): Declare.
* output.h (current_function_is_leaf,
	current_function_uses_only_leaf_regs): Declare.
	* function.c (current_function_is_leaf,
	current_function_uses_only_leaf_regs): Define.
	(init_function_start): Initialize current_function_is_leaf
	and current_function_uses_only_leaf_regs.
	* final.c (leaf_function): Don't define.
	(final_start_function): Replace uses of leaf_function with
	current_function_uses_only_leaf_regs.
	* toplev.c (rest_of_compilation): Set current_function_is_leaf
	prior to invoking local register allocation.
	(rest_of_compilation): Replace uses of leaf_function with
	current_function_uses_only_leaf_regs.
	* dbxout.c (dbxout_symbol, dbxout_parms): Likewise.
	* dwarf2out.c (add_location_or_const_vaule_attribute): Likewise.
	* dwarfout.c (add_location_or_const_value_attribute): Likewise.
	* sdbout.c (sdbout_symbol): Likewise.
	* sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
	* sparc.c (eligible_for_epilogue_delay, output_return,
	sparc_return_peephole_ok): Likewise.
	* sparc.md (leaf_function attribute, untyped_return): Likewise.
	* i386.c (ix86_compute_frame_size): Don't align the stack
	for leaf functions which don't allocate any stack slots.
	* tm.texi: Update documentation.

From-SVN: r26538
1999-04-18 13:09:37 +00:00
Vladimir Makarov
04b6000c82 h8300.md (adjust_length): New attribute.
Mon Mar 22 10:44:33 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
	* config/h8300/h8300.md (adjust_length): New attribute.
 	(modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn
 	default value of attribute "adjust_length" onto "no".
	* config/h8300/h8300.c (h8300_adjust_insn_length):  Use 0 if the
	shift is negative.
	* final.c (shorten_branches): Check insn length after its
 	adjusting.

From-SVN: r25895
1999-03-22 07:56:09 +00:00
Dan Nicolaescu
d7502074e4 final.c (end_final): There are 11 words in the "main header" structure, not 10.
* final.c (end_final): There are 11 words in the "main header"
        structure, not 10.

From-SVN: r25524
1999-03-01 17:08:51 -07:00
Jim Wilson
b5a3eb8445 Fix 64b-x-32b cross compiler breakage. Make alpha-x-m32r work again.
* emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
	result.
	* final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
	result.
	* real.c (endian): Delete sign extension code.
	* config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
	replaced with operand_subword call.

From-SVN: r25140
1999-02-10 09:28:24 -08:00
Jeffrey A Law
ab87f8c8d1 Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog for
details.

From-SVN: r24879
1999-01-26 18:43:17 -07:00
Kaveh R. Ghazi
9b3142b340 final.c (bb_str): Qualify a char* with the keyword `const'.
* final.c (bb_str): Qualify a char* with the keyword `const'.
        (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
        * fix-header.c (read_scan_file): Likewise.
        * genoutput.c (output_epilogue, process_template): Likewise.
        * local-alloc.c (requires_inout, block_alloc): Likewise.
        * output.h (output_asm_insn, assemble_string): Likewise.
        * recog.c (recog_constraints, check_asm_operands,
        decode_asm_operands, extract_insn, preprocess_constraints,
        constrain_operands): Likewise.
        * recog.h (operand_alternative, recog_constraints, insn_template,
        insn_outfun, insn_operand_constraint, insn_name): Likewise.
        * regclass.c (record_reg_classes, scan_one_insn): Likewise.
        * regmove.c (find_matches): Likewise.
        * reload.c (alternative_allows_memconst): Likewise.
        * reload1.c (constraint_accepts_reg_p,
        reload_cse_simplify_operands): Likewise.
        * rtl.h (decode_asm_operands): Likewise.
        * scan.h (fn_decl): Likewise.
        * varasm.c (assemble_string): Likewise.

From-SVN: r24834
1999-01-23 19:45:50 +00:00
Mark Mitchell
c6df88cbec rtl.h (rtx_def): Update documentation.
* rtl.h (rtx_def): Update documentation.
	(MEM_IN_STRUCT_P): Likewise.
	(MEM_SCALAR_P): New macro.
	(MEM_COPY_ATTRIBUTES): Likewise.
	(MEM_SET_IN_STRUCT_P): Likewise.
	* rtl.texi (MEM_SCALAR_P): Document.
	* alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
	(fixed_scalar_and_varying_struct_p): New function.  Use
	MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
	(aliases_everything_p): Likewise.
	(true_dependence): Use them.
	(write_dependence_p): New function, containing code common to
	anti_dependence and output_dependence.
	(anti_dependence): Use it.
	(output_dependence): Likewise.
	* calls.c (save_fixed_argument_area): Don't clear
	MEM_IN_STRUCT_P.
	(expand_call): Use MEM_SET_IN_STRUCT_P.
	(emit_library_call): Don't clear MEM_IN_STRUCT_P.
	(emit_library_call_value): Likewise.
	(store_one_arg): Use MEM_SET_IN_STRUCT_P.
	* combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
	(make_extraction): Likewise.
	(simplify_shift_const): Likewise.
	(gen_lowpart_for_combine): Likewise.
	* cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
	* emit-rtl.c (operand_subword): Likewise.
	(change_address): Likewise.
	* explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
	* expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
	(emit_group_store): Use MEM_SET_IN_STRUCT_P.
	(copy_blkmode_from_reg): Likewise.
	(store_field): Likewise.
	(expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
	heuristically.  Use MEM_SET_IN_STRUCT_P.
	(get_memory_rtx): Likewise.
	* final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
	* function.c (assign_stack_temp): Clear MEM_SCALAR_P and
	MEM_ALIAS_SET on newly returned MEMs.
	(assign_temp): Use MEM_SET_IN_STRUCT_P.
	(put_reg_into_stack): Likewise.
	(fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
	(gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
	(assign_parms): Likewise.
	(expand_function): Likewise.
	* integrate.c (expand_inline_function): Likewise.
	(copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
	* loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
	* optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
	* print-rtl.c (print_rtx): Print /f for frame_related.
	* recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
	* reload1.c (reload): Copy MEM_SCALAR_P as well.
	* stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
	(expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
	* varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
	(output_constant_def): Likewise.
	* a29k.c (a29k_set_memflags_1): Take scalar_p.
	Set MEM_SCALAR_P.
	(a29k_set_memflags): Use it.
	* alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
	* c4x.c (c4x_scan_for_ld): Likewise.
	* h8300.c (fix_bit_operand): Likewise.
	* m88k.c (legitimize_address): Likewise.
	(block_move_loop): Likewise.
	(block_move_no_loop): Likewise.
	(block_move_sequence): Likewise.
	(m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
	* mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
	* rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
	* sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
	* arm.h (arm_gen_load_multiple): Take scalar_p.
	(arm_store_load_multiple): Likewise.
	* arm.c (arm_gen_load_multiple): Likewise.
	(arm_gen_store_multiple): Likewise.
	(arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.

From-SVN: r24759
1999-01-19 10:32:33 +00:00
Kaveh R. Ghazi
87e11268b6 cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
* cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
        Instead of writing to const char *buf directly, use a non-const
        variable `wbuf' to allocate and write a string, then set buf = wbuf.
        * cppulp.c (user_label_prefix): Qualify a char* with the `const'
        keyword.
        * dyn-string.c (dyn_string_append): Likewise.
        * dyn-string.h (dyn_string_append): Likewise.
        * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
        * output.h (end_final, output_operand_lossage, asm_fprintf,
        named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
        Likewise.
        * profile.c (init_branch_prob): Likewise.
        * toplev.c (set_target_switch, vmessage,
        v_message_with_file_and_line, v_message_with_decl,
        v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
        verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
        v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
        v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
        open_dump_file, dump_rtl, clean_dump_file,
        print_version, print_single_switch, print_switch_values,
        dump_base_name, debug_args, lang_independent_options,
        user_label_prefix, documented_lang_options, target_switches,
        target_options, print_time, pfatal_with_name, fatal_io_error,
        fatal_insn, default_print_error_function, print_error_function,
        report_error_function, error_with_file_and_line, error_with_decl,
        error_for_asm, error, fatal, warning_with_file_and_line,
        warning_with_decl, warning_for_asm, warning, pedwarn,
        pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
        really_sorry, botch, output_quoted_string, output_file_directive,
        open_dump_file, rest_of_decl_compilation, display_help, main):
        Likewise.
        * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
        fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
        warning_with_file_and_line, error_with_file_and_line, sorry,
        really_sorry, default_print_error_function, report_error_function,
        rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
        error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
        output_file_directive, botch): Likewise.
        * tree.h (make_decl_rtl): Likewise.
        * varasm.c (strip_reg_name, named_section, decode_reg_name,
        make_decl_rtl): Likewise.

From-SVN: r24743
1999-01-18 08:53:41 +00:00
Kaveh R. Ghazi
973838fdb3 Warning fixes:
* alias.c (record_alias_subset): Remove ignored `&'.
        (init_alias_once): Likewise.
        * c-lex.c (UNGETC): Cast first argument of comma expression to void.
        * config/mips/mips.c (mips_asm_file_end): Cast the result of
        fwrite to `int' when comparing against one.
        * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
        (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
        * cse.c (rehash_using_reg): Change type of variable `i' to
        unsigned int.
        * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
        assigning it to one.
        * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
        * final.c (final_scan_insn): Likewise for variable `i'.
        (output_asm_insn): Cast a char to unsigned char when used as an
        array index.
        * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
        assigning it to one.
        * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
        * recog.c (preprocess_constraints): Cast a char to unsigned char
        when used as an array index.
        * regmove.c (find_matches): Likewise.
        * reload1.c (calculate_needs): Add default case in switch.
        (eliminate_regs_in_insn): Initialize variable `offset'.
        (set_offsets_for_label): Change type of variable `i' to unsigned.
        (reload_as_needed): Wrap variable `i' in macro check on
        AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
        * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
        with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
        when comparing against one.
        * stor-layout.c (layout_decl): Cast maximum_field_alignment to
        unsigned when comparing against one.  Likewise for
        GET_MODE_ALIGNMENT().
        (layout_record): Cast record_align to int when comparing against a
        signed value.
        (layout_type): Cast TYPE_ALIGN() to int when comparing against a
        signed value.
        * tree.c (get_identifier): Cast variable `len' to unsigned when
        comparing against one.
        (maybe_get_identifier): Likewise

From-SVN: r24403
1998-12-23 07:09:01 +00:00
Nick Clifton
1db9f6ceae Improve -dp output by using tabs and including instruciton lengths
From-SVN: r24149
1998-12-07 11:45:49 +00:00
Bernd Schmidt
f62a15e367 final.c (cleanup_subreg_operands): Delete some unused code.
* final.c (cleanup_subreg_operands): Delete some unused code.
	* recog.h (MAX_RECOG_ALTERNATIVES): New macro.
	(struct insn_alternative): New structure definition.
	(recog_op_alt): Declare variable.
	(preprocess_constraints): Declare function.
	* recog.c (recog_op_alt): New variable.
	(extract_insn): Verify number of alternatives is in range.
	(preprocess_constraints): New function.
	* reg-stack.c: Include recog.h.
	(constrain_asm_operands): Delete.
	(get_asm_operand_lengths): Delete.
	(get_asm_operand_n_inputs): New function.
	(record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
	N_OUTPUTS args.  All callers changed.
	Compute number of inputs and outputs here by calling
	get_asm_operand_n_inputs.
	Instead of constrain_asm_operands, call extract_insn,
	constrain_operands and preprocess_constaints.  Use information
	computed by these functions throughout.
	(record_reg_life): Delete code that is unused due to changes in
	record_asm_reg_life.
	(subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
	N_INPUTS and N_OUTPUTS args.  All callers changed.
	Similar changes as in record_asm_reg_life.
	(subst_stack_regs): Move n_operands declaration into the if statement
	where it's used.
	Delete code that is unused due to changes in subst_asm_stack_regs.
	* stmt.c (expand_asm_operands): Verify number of alternatives is in
	range.
	* Makefile.in (reg-stack.o): Depend on recog.h.

From-SVN: r24090
1998-12-04 12:55:59 +00:00
Richard Henderson
df3ba30ac3 * final.c (final_scan_insn): Abort if block_depth falls below 0.
From-SVN: r24030
1998-12-01 03:56:06 -08:00
Kaveh R. Ghazi
5148a72b33 gansidecl.h: Prepend a "G" to the macro wrapping this file (to distinguish it from the macro...
* gansidecl.h: Prepend a "G" to the macro wrapping this file
        (to distinguish it from the macro wrapping ansidecl.h.)
        Include libiberty's ansidecl.h.  Remove all redundant definitions.
        Define the PROTO() style macros in terms of the PARAMS() ones.
        * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
        __STDC__, when deciding whether to use ANSI variable args.
        (emit_library_call_value): Likewise.
        * cccp.c (error): Likewise.
        (warning): Likewise.
        (error_with_line): Likewise.
        (warning_with_line): Likewise.
        (pedwarn): Likewise.
        (pedwarn_with_line): Likewise.
        (pedwarn_with_file_and_line): Likewise.
        (fatal): Likewise.
        * cexp.y (error): Likewise.
        (pedwarn): Likewise.
        (warning): Likewise.
        * collect2.c (fatal_perror): Likewise.
        (fatal): Likewise.
        (error): Likewise.
        * combine.c (gen_rtx_combine): Likewise.
        * cpperror.c (cpp_message): Likewise.
        (cpp_fatal): Likewise.
        * cpplib.c (cpp_error): Likewise.
        (cpp_warning): Likewise.
        (cpp_pedwarn): Likewise.
        (cpp_error_with_line): Likewise.
        (cpp_warning_with_line): Likewise.
        (cpp_pedwarn_with_line): Likewise.
        (cpp_pedwarn_with_file_and_line): Likewise.
        * cpplib.h: Don't define PARAMS() macro.
        * demangle.h: Likewise.
        * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
        when deciding whether to use ANSI variable args.
        * emit-rtl.c (gen_rtx): Likewise.
        (gen_rtvec): Likewise.
        * final.c (asm_fprintf): Likewise.
        * fix-header.c (cpp_message): Likewise.
        (fatal): Likewise.
        (cpp_fatal): Likewise.
        * gcc.c (concat): Likewise.
        (fatal): Likewise.
        (error): Likewise.
        * genattr.c (fatal): Likewise.
        * genattrtab.c (attr_rtx): Likewise.
        (attr_printf): Likewise.
        (fatal): Likewise.
        * gencodes.c (fatal): Likewise.
        * genconfig.c (fatal): Likewise.
        * genemit.c (fatal): Likewise.
        * genextract.c (fatal): Likewise.
        * genflags.c (fatal): Likewise.
        * genopinit.c (fatal): Likewise.
        * genoutput.c (fatal): Likewise.
        (error): Likewise.
        * genpeep.c (fatal): Likewise.
        * genrecog.c (fatal): Likewise.
        * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
        deciding whether to declare `tree_node' and `rtx_def'.
        * hash.h: Don't define stuff we get from gansidecl.h.
        * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
        (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
        whether to use ANSI variable args.
        (error): Likewise.
        * prefix.c (concat): Likewise.
        * scan.h: Likewise.
        * system.h: Likewise.
        * toplev.c (error_with_file_and_line): Likewise.
        (error_with_decl): Likewise.
        (error_for_asm): Likewise.
        (error): Likewise.
        (fatal): Likewise.
        (warning_with_file_and_line): Likewise.
        (warning_with_decl): Likewise.
        (warning_for_asm): Likewise.
        (warning): Likewise.
        (pedwarn): Likewise.
        (pedwarn_with_decl): Likewise.
        (pedwarn_with_file_and_line): Likewise.
        (sorry): Likewise.
        (really_sorry): Likewise.
        * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
        whether to declare `tree_node' and `rtx_def'.
        * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
        deciding whether to use ANSI variable args.
        (build_nt): Likewise.
        (build_parse_node): Likewise.

From-SVN: r23577
1998-11-08 15:10:24 +00:00
Bernd Schmidt
0eadeb15bc recog.h (enum op_type): Define.
* recog.h (enum op_type): Define.
        (constrain_operands): Adjust prototype.
        (recog_op_type): Declare new variable.
        * recog.c (recog_op_type): New variable.
        (insn_invalid_p): Allow modifying an asm statement after reload.
        (extract_insn): Set up recog_op_type.
        (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
        Don't compute operand types, use recog_op_type.
        Use the information computed by extract_insn instead of the previous
        method of finding it by insn code number.
        * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
        * reorg.c (fill_slots_from_thread): Likewise.
        * reload1.c (reload_as_needed): Likewise.
        (gen_reload): Likewise.
        (inc_for_reload): Likewise.
        (reload_cse_simplify_operands): Likewise.
        Use the information computed by extract_insn instead of the previous
        method of finding it by insn code number.
        * genattrtab.c (write_attr_case): Generate call to extract_insn, not
        insn_extract.
        * final.c (final_scan_insn): Use extract_insn, not insn_extract.
        (cleanup_operand_subregs): Use extract_insn, not insn_extract.
        Use the information computed by extract_insn instead of the previous
        method of finding it by insn code number.
        * regmove.c (find_matches): Likewise.  Change meaning of the return
        value to be nonzero if the optimization can be performed, zero if
        not.  All callers changed.
        Shorten some variable names to fix formatting problems.
        (regmove_optimize): Shorten some variable names to fix formatting
        problems.
        Use the information computed by extract_insn instead of the previous
        method of finding it by insn code number.
        * regclass.c (scan_one_insn): Likewise.
        (record_reg_classes): Don't compute operand types, use recog_op_type.
        * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
        recog_constraints instead.

From-SVN: r23529
1998-11-04 14:25:00 -07:00
Richard Henderson
19283265ad Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
* Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
        (LIBCPP_OBJS): New.  Add cppulp.o.
        (cppmain, fix-header): Depend on and use libcpp.a.
        * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
        of the individual object files.
        * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
        last.
        * cccp.c (user_label_prefix): New.
        (main): Set it off -f*leading-underscore.
        (special_symbol): Use it.
        * cpplib.c (special_symbol): Likewise.
        (cpp_handle_option): Handle -f*leading-underscore.
        * cppulp.c: New file.
        * output.h (user_label_prefix): Declare it.
        * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
        * toplev.c (f_options, main): Handle -f*leading-underscore.
        * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
        referencing USER_LABEL_PREFIX directly.
        * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
        * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
        * final.c (asm_fprintf): Use user_label_prefix instead.
        * arm/thumb.c (thumb_print_operand): Likewise.
        * gcc.c (default_compilers): Pass -f*leading-underscore on to
        cpp wherever appropriate.

From-SVN: r23415
1998-10-28 14:31:06 -08:00
Bernd Schmidt
8f142c0b90 * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment.
From-SVN: r23394
1998-10-27 23:02:03 -05:00
Jeffrey A Law
0304f7877c final.c (cleanup_subreg_operands): New function.
* final.c (cleanup_subreg_operands): New function.
        (final_scan_insn): Use it.
        (alter_subreg): Clear the "used" field when we turn a SUBREG into
        a REG.
        * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
        operands when reload has finished.
        * reload.h (cleanup_subreg_operands): Declare..
        * flow.c (life_analysis_1): No longer delete CLOBBER insns after
        reload.  Handled in reload itself.
Should fix sh, sparc and probably other problems with post-reload life pass
and scheduling interactions.

From-SVN: r23377
1998-10-27 16:19:31 -07:00
Kaveh R. Ghazi
7f7f8214d8 Warning fixes:
* Makefile.in (recog.o): Depend on toplev.h.
        (insn-emit.o): Depend on recog.h.
        (insn-peep.o): Depend on recog.h and insn-config.h.
        * combine.c (simplify_set): Remove unused variable `scratches'.
        * final.c (final_scan_insn): Wrap declaration of variables `vlen'
        and `idx' in macro conditional controlling their use.
        * genemit.c (main): Make the generated output file include
        recog.h.  Don't have it declare `insn_operand_constraint', since
        we get it from recog.h.
        * genpeep.c (main): Make the generated output file include
        insn-config.h and recog.h.
        * recog.c: Include toplev.h.
        (extract_insn): Remove unused variable `p'.
        * regclass.c (fix_register): Add missing braces around initializer
        for `what_option'.
        (allocate_reg_info): Move variable `i' into the scope where it is
        used.  Change its type to `size_t'.

From-SVN: r23307
1998-10-25 12:56:39 +00:00
John Carr
7ad7f828fc * final.c (final_scan_insn): Disable tracking CC across branches.
From-SVN: r22533
1998-09-21 17:21:44 +00:00
John Carr
9ef4c6ef3c final.c (final): If a label is reached only from a single jump...
d
	* final.c (final): If a label is reached only from a single jump,
	call NOTICE_UPDATE_CC on the jump and its predecessor before
	emitting the insn after the label.
	* i386.h: Add AMD K6 support.
	Change TARGET_* macros to use table lookup.
	(INITIALIZE_TRAMPOLINE): Improve trampoline code.
	(ADJUST_COST): Change definition to call function in i386.c.
	(ISSUE_RATE): Define as 2 for anything newer than an 80486.
	* i386.c: Add AMD K6 support.
	Add constants for feature tests used by TARGET_* macros.
	(split_di): If before reload, call gen_lowpart and gen_highpart.
	(x86_adjust_cost): New function.
	(put_jump_code): New function.
	(print_operand): New codes 'D' and 'd'.
	* i386.md: New insn types.  New insn attribute "memory".
	Redefine scheduling parameters to use new types and add AMD K6
	support.  Explicitly set type of most insns.
	(move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
	Pro and K6 prefer movl $1,reg to incl reg.
	(adddi3, subdi3): Set cc_status.
	(DImode shift patterns): Change label counters from HOST_WIDE_INT
	to int; x86 can't have more than 2^31 DImode shifts per	file.
	(setcc): Combine all setcc patterns.  Allow writing memory.
	Combine all jump patterns using match_operator.
	(*bzero): Name pattern.  Emit mutliple stos instructions when that
	is faster than rep stos.
	(xordi3, anddi3, iordi3): Simplify DImode logical patterns and
	add define_split.
	* ch/Make-lang.in: Comment ^L characters.  Sun make doesn't like them.

From-SVN: r22290
1998-09-06 05:52:01 +00:00
Kaveh R. Ghazi
789f983ab1 system.h: Include stdarg.h/varargs.h...
* system.h: Include stdarg.h/varargs.h, make sure they are ordered
        correctly with regards to stdio.h.
        * calls.c: Remove stdarg.h/varargs.h.
        * cccp.c: Likewise.
        * cexp.y: Likewise.
        * combine.c: Likewise.
        * cpperror.c: Likewise.
        * cpplib.c: Likewise.
        * cpplib.h: Likewise.
        * doprint.c: Likewise.
        * emit-rtl.c: Likewise.
        * final.c: Likewise.
        * fix-header.c: Likewise.
        * gcc.c: Likewise.
        * genattr.c: Likewise.
        * genattrtab.c: Likewise.
        * gencodes.c: Likewise.
        * genconfig.c: Likewise.
        * genemit.c: Likewise.
        * genextract.c: Likewise.
        * genflags.c: Likewise.
        * genopinit.c: Likewise.
        * genoutput.c: Likewise.
        * genpeep.c: Likewise.
        * genrecog.c: Likewise.
        * mips-tfile.c: Likewise.
        * prefix.c: Likewise.
        * protoize.c: Likewise.
        * regmove.c: Likewise.
        * toplev.c: Likewise.
        * tree.c: Likewise.
        * cp/errfn.c: Remove stdarg.h/varargs.h.
        * cp/tree.c: Likewise.

From-SVN: r21997
1998-08-26 08:11:47 +00:00
Michael Hayes
252f342a37 regclass.c: Changed register set documentation to be consistent with GCC behaviour.
* regclass.c: Changed register set documentation to be consistent
        with GCC behaviour.
        * final.c (final_start_function) Removed redundant test for
        call_fixed_regs.

From-SVN: r21847
1998-08-19 06:49:17 -06:00
David S. Miller
e0d8018451 Sparc backend rewrite by rth and myself, please
peruse the lengthy ChangeLog for a blow by blow account.

Co-Authored-By: Richard Henderson <rth@cygnus.com>

From-SVN: r21652
1998-08-09 22:34:44 -07:00
Jeff Law
9ec36da574 * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for
details.

From-SVN: r20808
1998-06-29 15:40:49 -06:00
Mark Mitchell
41472af877 invoke.texi (-fstrict-aliasing): Document.
* invoke.texi (-fstrict-aliasing): Document.
	* rtl.texi (MEM_ALIAS_SET): Document.
	* flags.h (flag_strict_aliasing): Declare.
	* toplev.c (flag_strict_aliasing): Define.
	(f_options): Add -strict-aliasing.
	(main): Set flag_strict_aliasing if -O2 or higher.
	* tree.h (tree_type): Add alias_set field.
	(TYPE_ALIAS_SET): New macro.
	(TYPE_ALIAS_SET_KNOWN_P): Likewise.
	(get_alias_set): Declare.
	* tree.c (lang_get_alias_set): Define.
	(make_node): Initialize TYPE_ALIAS_SET.
	(get_alias_set): New function.
	* print-tree.c (print_node): Dump the alias set for a type.
	* c-tree.h (c_get_alias_set): Declare.
	* c-common.c (c_get_alias_set): New function.
	* c-decl.c (init_decl_processing): Set lang_get_alias_set.
	* expr.c (protect_from_queue): Propogage alias sets.
	(expand_assignment): Calculate alias set for new MEMs.
	(expand_expr): Likewise.
	* function.c (put_var_into_stack): Likewise.
	(put_reg_into_stack): Likewise.
	(gen_mem_addressof): Likewise.
	(assign_parms): Likewise.
	* stmt.c (expand_decl): Likewise.
	* varasm.c (make_decl_rtl): Eliminate redundant clearing of
	DECL_RTL.  Calculate alias set for new MEMs.
	* rtl.def (REG): Add dummy operand.
	(MEM): Add extra operand to store the MEM_ALIAS_SET.
	* rtl.h (MEM_ALIAS_SET): New macro.
	(gen_rtx_MEM): Declare.
	* emit-rtl.c (gen_rtx_MEM): New function.
	* gengenrtl.c (sepcial_rtx): Make MEMs special.
	* alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro.
	(DIFFERENT_ALIAS_SETS_P): Likewise.
	(canon_rtx): Propogate the alias set to the new MEM.
	(true_dependence): Check the alias sets.
	(anti_dependence): Likewise.
	(output_dependence): Likewise.
	* explow.c (stabilize): Progoate alias sets.
	* integrate.c (copy_rtx_and_substitute): Likewise.
	* final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P
	in an unpredictable state.  Propogate alias sets.
	* reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which
	we have no alias information.

From-SVN: r20719
1998-06-25 15:14:41 +00:00
Kaveh R. Ghazi
296433e1a9 Warning fixes:
* Makefile.in (varasm.o): Depend on sdbout.h.
        (sdbout.o): Depend on toplev.h.
        * collect2.c (scan_prog_file): Cast fprintf argument to `long' and
        use %ld specifier.
        * final.c (shorten_branches): Cast first arg of `bzero' to char *.
        * genextract.c (main): When creating insn-extract.c, mark variable
        `i' with ATTRIBUTE_UNUSED.
        * genpeep.c (main): When creating insn-peep.c, mark variables
        `insn', `x' and `pat' with ATTRIBUTE_UNUSED.
        * objc/init.c (__objc_tree_print): Wrap function definition in
        macro `DEBUG'.
        * objc/objc-act.c (encode_array): Cast sprintf argument to `long'
        and use %ld specifier.
        (adorn_decl): Likewise, twice.

From-SVN: r20650
1998-06-22 05:23:33 +00:00
Kaveh R. Ghazi
50b2596f67 Warning fixes:
* Makefile.in (varasm.o): Depend on dbxout.h.
	(cse.o): Depend on toplev.h and output.h.
	(gcse.o): Depend on output.h.
	* mips.c: Include system.h and toplev.h and remove redundant code.
	Include output.h after tree.h so all its prototypes get activated.
	* mips.md (table_jump): Remove unused variable `dest'.
	* sparc.h: Add prototype for `v8plus_regcmp_op'.
	* crtstuff.c (fini_dummy, init_dummy): Mark function definitions
	with __attribute__ ((__unused__)).
	(__frame_dummy): Provide prototype before use, wrap it with
	EH_FRAME_SECTION_ASM_OP.
	* cse.c: Move inclusion of <setjmp.h> above local headers.
  	Include toplev.h and output.h.
	* dbxout.h: Add prototype for `dbxout_begin_function'.
	* final.c (final_scan_insn): Wrap variable `max_skip' in macro
	ASM_OUTPUT_MAX_SKIP_ALIGN.
	* gcse.c: Include system.h and output.h.
	(dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data):
	Make extern instead of static.
	(compute_can_copy): Only declare variables `reg' and `insn' when
 	AVOID_CCMODE_COPIES is not defined.
	(record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED.
	(hash_scan_clobber): Likewise for `x' and `insn'.
	(hash_scan_call): Likewise.
	(record_last_set_info): Likewise for `setter'.
	(mark_call): Likewise for `pat'.
	(pre_insert_insn): Wrap variable `note' in macro HAVE_cc0.
	* libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the
 	length parameter so that it multiplies the number of elements by
 	the sizeof(element).
	* output.h: Add prototype for `weak_finish'.
	* recog.h: Likewise for `validate_replace_src'.
	* rtl.h: Likewise for `optimize_save_area_alloca',
 	`fix_sched_param', `purge_addressof', `gcse_main',
 	`regmove_optimize', `dbr_schedule', `branch_prob' and
 	`end_branch_prob'.
	* toplev.h: Likewise for `set_float_handler' and
 	`output_quoted_string'.
	* varasm.c: Include dbxout.h.

From-SVN: r20351
1998-06-08 18:30:27 +00:00
Andrew MacLeod
a1622f838f [multiple changes]
Thu Jun  8 14:16:15 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
	* eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
	flag_new_exceptions runtime flag.
	(struct old_exception_table): New struct which represents what
	the exception table looks like without the new model.
	(NEW_EH_RUNTIME): New value used as a tag in the exception table to
	flag that this is a new style table.
	* except.h: Remove compile time flag NEW_EH_MODEL.
	(expand_builtin_eh_stub_old): New prototype.
	* tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
	* expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
	* c-decl.c (init_decl_processing): Add new builtin function
	__builtin_eh_stub_old.
	* final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
	* flags.h (flag_new_exceptions): New runtime flag.
	* toplev.c (flag_new_exceptions): Initialize default to 0,
	-fnew-exceptions sets to 1.
	* except.c (output_exception_table_entry): Output New style exception
	identifier into table, and replace compile time flag NEW_EH_MODEL
	with runtime flag flag_new_exceptions.
	(output_exception_table): Replace compile time flag NEW_EH_MODEL.
	(expand_builtin_eh_stub_old): Duplicates original functionality of
	expand_builtin_eh_stub.
	(expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
	* libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
	(old_find_exception_handler): New func, same as find_exception_handler
	except it works on the old style exception table.
	(__throw): Replace NEW_EH_MODEL. Detect new model based on presence
	of identifier in the exception table, and call appropriate routines.
1998-06-08  Andrew MacLeod  <amacleod@cygnus.com>
	* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
	time flag.  Call __cp_eh_info instead of __cp_exception_info.
	* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
	(__cp_exception_info): Return offset into cp_eh_info structure to
	match what use to be the start of this structure.
	(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
	(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
	compile time flag.
	(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
	__cp_eh_info instead of __cp_exception_info.

From-SVN: r20336
1998-06-08 12:43:28 +00:00
Bernd Schmidt
75197b3781 final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value.
* final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value.
        (shorten_branches, final_scan_insn): Test value of
        JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it
        is defined.
        * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes.
        * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1.
        coff.h: Likewise.
        * i386/386bsd.h: Likewise.
        * i386/freebsd-elf.h: Likewise.
        * i386/freebsd.h: Likewise.
        * i386/netbsd.h: Likewise.
        * i386/ptx4-i.h: Likewise.
        * i386/sysv4.h: Likewise.
        * pa/pa.h: Likewise.
        * rs6000/linux.h: Likewise.
        * rs6000/rs6000.h: Likewise.
        * sh/sh.h: Likewise.
        * sparc/sp64-elf.h: Likewise.
        * v850/v850.h: Likewise.
        * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0.
        * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic).

From-SVN: r19940
1998-05-21 18:01:23 -06:00
John Wehle
9e423e6db2 acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag.
* acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag.
	* configure.in: Check for it.
	* i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Use it.
	* final.c (uid_align, uid_shuid, label_align): Make static.
	(label_align): Change type to struct label_alignment pointer.
	(LABEL_TO_ALIGNMENT, shorten_branches): Update due to type change.
	(LABEL_TO_MAX_SKIP): Define.
	(LABEL_ALIGN_MAX_SKIP, LOOP_ALIGN_MAX_SKIP,
	LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Provide defaults.
	(shorten_branches): Record the maximum bytes to skip when
	aligning a label.
	(final_scan_insn): Use the maximum bytes to skip when aligning a label
	if ASM_OUTPUT_MAX_SKIP_ALIGN is available.
	* i386.h (LOOP_ALIGN_MAX_SKIP,
	LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
	* i386.c (override_options): i386_align_jumps and i386_align_loops
	default to 4 if ASM_OUTPUT_MAX_SKIP_ALIGN is available.
	* invoke.texi: Document new i386 align-loops and align-jumps behavior.

From-SVN: r19933
1998-05-21 13:12:20 -06:00
Jim Wilson
c73912726c Finish incomplete change started by Kenner.
* configure.in (*-*-linux-gnu*): Delete NO_STAB_H from xm_defines.
	(powerpcle-*-cygwin32): Delete xm_defines.
	* final.c, mips-tfile.c, xcoffout.c, config/mips/mips.c: Use
	HAVE_STAB_H instead of NO_STAB_H.
	* config/xm-linux.h (NO_STAB_H): Delete.
	(HAVE_STAB_H): Undefine.
	* config/i386/xm-go32.h (NO_STAB_H): Delete.

From-SVN: r19886
1998-05-19 11:24:07 -07:00
Robert Lipe
76ead72b80 dwarfout.h, [...]: New files.
* dwarfout.h, dwarf2out.h, dbxout.h, sdbout.h:  New files.
        Prototypes for externally used functions in respective C files.
        * dwarfout.c, dbxout.c, dwarf2out.c, sdbout.c, toplev,c,
        final.c: Include above files.
        * Makefile.in (toplev.o): Add dependency for above four headers.
        (final.o): Likewise.
        (dwarfout.o, dbxout.o, dwarf2out.o, sdbout.o): Depend on four
        respective header files.

From-SVN: r19835
1998-05-18 07:11:42 +00:00
Andrew MacLeod
9a0d1e1b11 First cut of changes to utilize the new exception handling model
From-SVN: r19746
1998-05-14 13:39:15 +00:00
Kaveh R. Ghazi
d6f4ec5199 Warning fixes:
* Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h.
	(c-lex.o): Depend on output.h.
	(c-common.o): Likewise.
	(stmt.o): Likewise.
	(calls.o): Likewise.
	(integrate.o): Depend on toplev.h.
	(regclass.o): Depend on output.h.
	(final.o): Depend on reload.h.
	* c-common.c: Include output.h.
	(check_format_info): Remove unused variable `integral_format'.
	* c-decl.c (print_lang_decl): Mark parameters `file', `node' and
	`indent' with ATTRIBUTE_UNUSED.
	(print_lang_type): Likewise.
	(maybe_build_cleanup): Likewise for parameter `decl'.
	(copy_lang_decl): Likewise for parameter `node'.
	* c-lang.c: Include c-tree.h, c-lex.h and toplev.h.
	(lang_print_xnode): Mark parameters `file', `node' and `indent'
 	with ATTRIBUTE_UNUSED.
	(lookup_interface): Likewise for parameter `arg'.
	(is_class_name): Likewise.
	(maybe_objc_check_decl): Likewise for parameter `decl'.
	(maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and
	`reflexive'.
	(maybe_objc_method_name): Likewise for parameter `decl'.
	(build_objc_string): Likewise for parameters `len' and `str'.
	* c-lex.c: Include output.h.
	* c-lex.h (position_after_white_space): Correct typo in prototype.
	* c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else,
 	c_expand_end_cond, init_iterators): Add prototypes.
	* caller-save.c (set_reg_live): Mark parameters `reg' and `setter'
	with ATTRIBUTE_UNUSED.
	* calls.c: Include output.h.
	* cccp.c (pipe_closed): Mark parameter `signo' with
 	ATTRIBUTE_UNUSED.
	* combine.c: Move inclusion of expr.h to after insn-config.h.
	* iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define
	as empty, rather define as ((void)0).
	* sparc.c (sparc_check_64): Add braces around ambiguous `else'.
	Add parentheses around assignment used as truth value.
	* cplus-dem.c (squangle_mop_up): Change return type to void.
	(internal_cplus_demangle): Remove unused parameter `options'.
	All callers changed.
	(cplus_demangle_opname): Remove function wide variable `int i' and
 	replace with `size_t i' at each location where it is used.
	(cplus_demangle_opname): change type of `i' from int to size_t.
	* cppexp.c (right_shift): Mark parameter `pfile' with
	ATTRIBUTE_UNUSED.
	* cpphash.c (cpp_lookup): Likewise.
	(cpp_hash_cleanup): Likewise.
	* cpplib.c (parse_name): Add a prototype and make it static.
	(null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
	(null_cleanup): Likewise for parameters `pbuf' and `pfile'.
	(macro_cleanup): Likewise for parameter `pfile'.
	(file_cleanup): Likewise.
	* cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read,
 	cpp_read_check_assertion, skip_rest_of_line): Add prototypes.
	* crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data,
	__DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED.
	* cse.c (cse_check_loop_start): Mark parameter `set' with
 	ATTRIBUTE_UNUSED.
	* dbxout.c (flag_minimal_debug, have_used_extensions,
	source_label_number): Move inside macro wrapper check against
	defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO).
	* dwarf2out.c (gen_entry_point_die): Hide prototype and definition.
	* except.h (doing_eh): Provide prototype.
	* expr.c: Move inclusion of expr.h to after insn-config.h.
	* final.c: Include reload.h.
	(shorten_branches): Cast the first argument of bzero to char *.
	* fix-header.c (cpp_print_containing_files): Mark parameter
 	`pfile' with ATTRIBUTE_UNUSED.
	(cpp_fatal): Likewise.
	* flow.c (find_basic_blocks_1): Cast the first argument of bzero
	to char *.
	* genattrtab.c (make_length_attrs): Change the type of variable
	`i' from int to size_t.
	(zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED.
	(one_fn): Likewise.
	* genextract.c (main): When generating insn-extract.c, mark
	variable `junk' with ATTRIBUTE_UNUSED.
	* gengenrtl.c (gencode): When generating genrtl.c, cast the first
	argument of bzero to char*.
	* integrate.c: Include toplev.h.
	* libgcc2.c: Wrap `struct exception_table' and
	`find_exception_handler' in macro DWARF2_UNWIND_INFO.
	* objc/Make-lang.in (objc-act.o): Depend on toplev.h.
	* objc/objc-act.c: Include toplev.h.
	(lang_print_xnode): Mark parameters `file', `node' and `indent'
	with ATTRIBUTE_UNUSED.
	(finish_protocol): Likewise for parameter `protocol'.
	* output.h (declare_weak): Add prototype.
	(decode_reg_name): Don't wrap with TREE_CODE macro.
	(assemble_alias): Add prototype.
	* regclass.c: Include output.h.
	* reload.h (reloads_conflict): Add prototype.
	* rtl.h (print_rtl_single, mark_elimiation, reg_class_subset_p,
	output_func_start_profiler): Add prototypes.
	* rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with
 	ATTRIBUTE_UNUSED.
	* scan-decls.c: Include scan.h.
	* scan.h (recognized_function, recognized_extern): Add prototypes.
	* stmt.c: Include output.h.
	* toplev.c (error_for_asm, warning_for_asm): Remove prototypes.
	(output_lang_identify): Hide prototype and definition.
	(float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED.
	(pipe_closed): Likewise.
	* toplev.h (count_error, strip_off_ending, error_for_asm,
 	warning_for_asm): Add prototypes.

From-SVN: r19712
1998-05-13 12:40:39 +00:00
Michael Meissner
cf879efaf4 Call fatal_insn instead of abort
From-SVN: r19635
1998-05-08 15:24:08 +00:00
Michael Meissner
31bfbf1f68 Make output_operand_lossage report the real error, do not just call abort
From-SVN: r19580
1998-05-06 14:21:02 +00:00
Robert Lipe
10f0ad3d49 toplev.h: New file.
Wed May  6 06:35:38 1998  Robert Lipe  <robertl@dgii.com>
        * toplev.h: New file.   Protypes for functions in toplev.c.
        * tree.h, rtl.h: Deleted protos for functions in toplev.c.
        * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c,
        c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c,
        convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c,
        function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c,
        reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c,
        varasm.c: include it.

From-SVN: r19564
1998-05-06 04:54:01 +00:00
Jeff Law
f5963e6170 * Check in merge from gcc2. See ChangeLog.12 for details.
From-SVN: r19553
1998-05-05 17:18:02 -06:00
Michael Meissner
563c063f76 Fix a warning
From-SVN: r19422
1998-04-27 06:20:13 +00:00
John Carr
27eef9cece emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero if...
* emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero
	if HOST_BITS_PER_WIDE_INT is larger than BITS_PER_WORD.
	* final.c (split_double): Sign extend both halves of a split CONST_INT.

From-SVN: r19375
1998-04-22 12:57:04 +00:00
J"orn Rennecke
9570762777 final.c (shorten_branches, [...]): Move code to free label_align...
* final.c (shorten_branches, init_insn_lengths): Move code
	to free label_align, uid_shuid, insn_lengths, insn_addresses
	and uid_align from the former function into the latter one;
	Add code to clear these variables.
	* sh.h (label_align): Remove declaration.

From-SVN: r19344
1998-04-20 15:40:04 +01:00
Jeff Law
e5e809f419 * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12
for details.

        * haifa-sched.c: Mirror recent changes from gcc2.

From-SVN: r18984
1998-04-04 06:32:39 -07:00
Richard Henderson
ce4d78eb2f final.c (alter_subreg): Allow the target to hook by-mode subreg hard register number changes.
* final.c (alter_subreg): Allow the target to hook by-mode subreg
hard register number changes.

From-SVN: r18946
1998-04-01 17:56:17 -08:00
Kaveh R. Ghazi
670ee92097 Major cutover to using system.h:
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o,
        c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o,
        caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o,
        dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o,
        expr.o, final.o, flow.o, function.o, getpwd.o, global.o,
        integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o,
        prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o,
        reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o,
        rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o,
        tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend
        on system.h.
        * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c,
        c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c,
        caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c,
        dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c,
        expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c,
        integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c,
        prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c,
        reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c,
        rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c,
        stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c,
        xcoffout.c: Include system.h.  Organize include ordering so
        that stdarg/varargs comes before other system headers.  Remove
        spurious casts of functions assured of a prototype in system.h.

From-SVN: r18726
1998-03-20 14:58:42 +00:00
Kaveh R. Ghazi
ecb0676809 More warning fixes...
* final.c (shorten_branches): Add parentheses around +/- in
        operand of &.
        * flow.c (life_analysis): Wrap variable `i' in macro ELIMINABLE_REGS.

From-SVN: r18703
1998-03-19 07:14:19 +00:00
Manfred Hollstein
22bf44225f final.c (insn_noperands): Change type to unsigned int.
P
	* final.c (insn_noperands): Change type to unsigned int.
	(final_scan_insn): Likewise for noperands;
	properly check operand number boundaries.

From-SVN: r18693
1998-03-19 00:01:20 +00:00
Andrew Macleod
a8c3510c8f final.c (final): Initialize the table indicating which instructions belong in which exception region.
* final.c (final): Initialize the table indicating which instructions
	belong in which exception region.

From-SVN: r18625
1998-03-16 12:51:56 +00:00
Manfred Hollstein
8506650392 c-decl (finish_struct): Change type of min_align to unsigned.
d
gcc/ChangeLog:
	* c-decl (finish_struct): Change type of min_align to unsigned.
	* cplus-dem.c (demangle_function_name): Change type of variable i to size_t;
	remove unused variable len.
	* dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a
	comment indicating this is proper behaviour.
	(reg_loc_descriptor): Remove redundant comparison of unsigned variable
	reg >= 0.
	(based_loc_descr): Likewise.
	* enquire.c (bitpattern): Change type of variable i to unsigned.
	* final.c (output_asm_insn): Don't cast insn_noperands to unsigned.
	* flow.c (life_analysis): Change type of variable i to size_t;
	remove unused variable insn.
	* gcc.c (translate_options): Change type of variables optlen, arglen and
	complen to size_t.
	(input_filename_length): Change type to size_t.
	(do_spec_1): Change type of variable bufsize to size_t.
	(main): Change type of variables i and j to size_t;
 	remove subblock local definition of variable i.
	(lookup_compiler): Change type of second argument to size_t;
	change type of variable i to size_t.
	* genemit.c (output_init_mov_optab): Change type of variable i to size_t.
	* genopinit.c (get_insn): Change type of variable pindex to size_t.
	* genrecog.c (add_to_sequence): Change type of variable i to size_t.
	* global.c (global_alloc): Change type of variable i to size_t.
	* regclass.c (init_reg_sets): Change type of variables i and j to unsigned.
	* stmt.c (expand_end_bindings): Change type of variable i to size_t.
	(expand_end_case): Change type of variable count to size_t.
	* toplev.c (main): Change type of variable j to size_t.
	(set_target_switch): Change type of variable j to size_t.
	(print_switch_values): Change type of variable j to size_t;
	remove unused variable flags.
	* varasm.c (assemble_variable): Change type of variable align to size_t.
	(const_hash_rtx): Change type of variable i to size_t.
gcc/cp/ChangeLog:
Sun Mar  8 17:13:38 1998  Manfred Hollstein  <manfred@s-direktnet.de>
	* decl2.c (lang_decode_option): Change j's type to size_t.
	* tree.c (layout_vbasetypes): record_align and desired_align are of
	type unsigned int; const_size and nonvirtual_const_size likewise.

From-SVN: r18490
1998-03-12 00:02:51 +00:00
J"orn Rennecke
a8aa4e0b90 final.c (shorten_branches): Remove conditionalizing on SHORTEN_WITH_ADJUST_INSN_LENGTH
* final.c (shorten_branches): Remove conditionalizing on
	SHORTEN_WITH_ADJUST_INSN_LENGTH
	* sh.h, pa.h (SHORTEN_WITH_ADJUST_INSN_LENGTH): Remove.

From-SVN: r18470
1998-03-11 07:12:31 +00:00
J"orn Rennecke
af0356161e * final.c (shorten_branches): Initialize insn_addresses.
From-SVN: r18448
1998-03-09 12:00:42 +00:00
Jeffrey A Law
5e75ef4aca final.c (shorten_branches): Fix minor logic error in ADDR_DIFF_VEC shortening support.
* final.c (shorten_branches): Fix minor logic error in
        ADDR_DIFF_VEC shortening support.

From-SVN: r18443
1998-03-08 05:04:17 -07:00
Joern Rennecke
33f7f35385 rtl.h (addr_diff_vec_flags): New typedef.
* rtl.h (addr_diff_vec_flags): New typedef.
	(union rtunion_def): New member rt_addr_diff_vec_flags.
	(ADDR_DIFF_VEC_FLAGS): New macro.
	* sh.c (output_branch): Fix offset overflow problems.
	* final.c (shorten_branches): Implement CASE_VECTOR_SHORTEN_MODE.
	(final_scan_insn): New argument BODY for ASM_OUTPUT_ADDR_DIFF_ELT.
	* rtl.def (ADDR_DIFF_VEC): Three new fields (min, max and flags).
	* stmt.c (expand_end_case): Supply new arguments to
	gen_rtx_ADDR_DIFF_VEC.
	* 1750a.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY.
	* alpha.h, arc.h, clipper.h, convex.h : Likewise.
	* dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h : Likewise.
	* i370.h, i386.h, i860.h, i960.h, m32r.h, m68k.h, m88k.h : Likewise.
	* mips.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pyr.h : Likewise.
	* rs6000.h, sh.h, sparc.h, spur.h, tahoe.h, v850.h : Likewise.
	* vax.h, we32k.h, alpha/vms.h, arm/aof.h, arm/aout.h : Likewise.
	* i386/386bsd.h, i386/freebsd-elf.h : Likewise.
	* i386/freebsd.h, i386/linux.h : Likewise.
	* i386/netbsd.h, i386/osfrose.h, i386/ptx4-i.h, i386/sco5.h : Likewise.
	* i386/sysv4.h, m68k/3b1.h, m68k/dpx2.h, m68k/hp320.h : Likewise.
	* m68k/mot3300.h, m68k/sgs.h : Likewise.
	* m68k/tower-as.h, ns32k/encore.h, sparc/pbd.h : Likewise.
	* sh.h (INSN_ALIGN, INSN_LENGTH_ALIGNMENT): Define.
	(CASE_VECTOR_SHORTEN_MODE): Define.
	(short_cbranch_p, align_length, addr_diff_vec_adjust): Don't declare.
	(med_branch_p, braf_branch_p): Don't declare.
	(mdep_reorg_phase, barrier_align): Declare.
	(ADJUST_INSN_LENGTH): Remove alignment handling.
	* sh.c (uid_align, uid_align_max): Deleted.
	(max_uid_before_fixup_addr_diff_vecs, branch_offset): Deleted.
	(short_cbranch_p, med_branch_p, braf_branch_p, align_length): Deleted.
	(cache_align_p, fixup_aligns, addr_diff_vec_adjust): Deleted.
	(output_far_jump): Don't use braf_branch_p.
	(output_branchy_insn): Don't use branch_offset.
	(find_barrier): Remove checks for max_uid_before_fixup_addr_diff_vecs.
	Remove paired barrier stuff.
	Don't use cache_align_p.
	Take alignment insns into account.
	(fixup_addr_diff_vecs): Reduce to only fixing up the base label of
	the addr_diff_vec.
	(barrier_align, branch_dest): New function.
	(machine_dependent_reorg, split_branches): Remove infrastructure
	for branch shortening that is now provided in the backend.
	* sh.md (short_cbranch_p, med_branch_p, med_cbranch_p): New attributes.
	(braf_branch_p, braf_cbranch_p): Likewise.
	(attribute length): Use new attributes.
	(casesi_worker): Get mode and unsignednedd from ADDR_DIFF_VEC.
	(addr_diff_vec_adjust): Delete.
	(align_2): Now a define_expand.
	(align_log): Now length 0.

From-SVN: r18433
1998-03-06 14:54:07 +00:00
Joern Rennecke
5a32a90c0b final.c (shorten_branches): Restore accidentally removed code.
8
        * final.c (shorten_branches): Restore accidentally removed code.

From-SVN: r18430
1998-03-06 03:41:22 -07:00
J"orn Rennecke
1dd8faa86e * final.c (final_scan_insn, case CODE_LABEL: Cleanup.
From-SVN: r18398
1998-03-04 10:50:18 +00:00
Joern Rennecke
923f7cf923 Fix typo in this patch:
* final.c (insn_current_reference_address):
        Use SEQ instead of BRANCH as argument to align_fuzz, to get a
        proper alignment chain.

From-SVN: r18397
1998-03-04 08:13:16 +00:00
J"orn Rennecke
e2faec7588 final.c (shorten_branches): Tag the loop alignment onto the first label after NOTE_INSN_LOOP_BEG even if...
* final.c (shorten_branches): Tag the loop alignment onto the
	first label after NOTE_INSN_LOOP_BEG even if there is an
	intervening insn.

From-SVN: r18396
1998-03-04 07:54:28 +00:00
J"orn Rennecke
2602447552 final.c (insn_current_reference_address): Use SEQ instead of BRANCH as argument to align_fuzz...
* final.c (insn_current_reference_address):
	Use SEQ instead of BRANCH as argument to align_fuzz, to get a
	proper alignment chain.

From-SVN: r18392
1998-03-03 15:52:48 -07:00
J"orn Rennecke
de7987a645 final.c (max_labelno): New static variable.
* final.c (max_labelno): New static variable.
        (final_scan_insn): Check max_labelno before outputting an
        alignment for a label.
        (shorten_branches): Remove unused variable length_align.
Fix some minor problems with new shortening code.

From-SVN: r18390
1998-03-03 13:45:49 -07:00
J"orn Rennecke
687d0ab643 Formatting fix.
From-SVN: r18364
1998-03-02 15:04:08 +00:00
J"orn Rennecke
fc470718ac final.c (insn_last_address, [...]): New variables.
* final.c (insn_last_address, insn_current_align, uid_align):
	New variables.
	(in_align_chain, align_fuzz, align_shrink_fuzz): New functions.
	(insn_current_reference_address): Likewise.
	(shorten_branches, final_scan_insn): Implement LABEL_ALIGN,
	LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros.
	(label_to_alignment): New function.
	* genattrtab.c (write_test_expr): If one of LABEL_ALIGN,
	LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call
	insn_current_reference_address instead of insn_current_address.
	(or_attr_value, write_length_unit_log): New functions.
	(main): Call write_length_unit_log.
	(write_const_num_delay_slots): Output extra '\n'.
	* alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
	replace with:
	(LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER).
	* i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise.
	* arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): replace with:
	(LOOP_ALIGN).
	* i960.h, m88k.h: (ASM_OUTPUT_ALIGN_CODE): Replace with:
	(LABEL_ALIGN_AFTER_BARRIER).
	* ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise.
	* ns32k/tek6000.h: Likewise.
	* i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete.
	* i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of
	ASM_OUTPUT_ALIGN_CODE.

From-SVN: r18357
1998-03-02 11:54:35 +00:00
Mark Mitchell
90ca38bbee * final.c (final_scan_insn): Undo overzealous removal of `set'.
From-SVN: r18323
1998-03-01 00:08:36 +00:00
Kaveh R. Ghazi
5172371191 Fix warious warnings:
* c-aux-info.c: Include string.h/strings.h.
	* pa.c: Include stdlib.h.
	(pa_combine_instructions): Prototype the function.
	(pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise.
	(reloc_needed): Add default case for enumeration switch.
	(remove_useless_addtr_insns): Remove unused variable `all'.
	(hppa_expand_prologue): Add explicit braces to avoid
	ambiguous `else'.
	(output_function_epilogue): Remove unused variable `i'.
	(output_millicode_call): Remove unused variable `link'.
	(shadd_constant_p, forward_branch_p): Make the function static.
	(following_call): Explicitly declare to return int.
	(pa_reorg): Declare as void.
	(pa_combine_instructions): Declare as static void.  Add
	parentheses around && within ||.
	* pa.h: Add prototypes for pa_reorg, symbolic_operand,
	following_call, function_label_operand, lhs_lshift_cint_operand
	and zdepi_cint_p.
	* pa.md: Add parentheses around && within ||.
	* cppalloc.c: Include stdlib.h.
	* cpperror.c (cpp_print_containing_files): Remove unused variable
	`i'.  Fix format specifier in fprintf.
	* cse.c (cse_around_loop): Add explicit braces to avoid
	ambiguous `else'.
	(delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0.
	* expr.c (expand_expr): Add parentheses around && within ||.
	* final.c (app_enable): Replace fprintf with fputs where there are
	no format specifiers and no trailing argument after the string.
	Eg, when printing ASM_APP_ON/ASM_APP_OFF.
	(app_disable): Likewise.
	(final_end_function): Likewise.
	(final_scan_insn): Likewise.  Remove unused variable `set'.
	(profile_function): Wrap empty if-statement body in {} brackets.
	* function.c: Include stdlib.h.
	(pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD.
	(reposition_prologue_and_epilogue_notes): Add parentheses
	around assignment used as truth value.
	* integrate.c (expand_inline_function): Wrap variable
	`cc0_insn' in macro HAVE_cc0.
	* jump.c (jump_optimize): Wrap variable `q' in macro
	HAVE_cc0.  Remove unused variable `prev1'.
	* libgcc2.c (__bb_exit_trace_func): Add parentheses around &&
	within ||.  Fix format specifier in fprintf.
	(__bb_init_prg): Add parentheses around assignment used as
	truth value.
	* local-alloc.c: Include stdlib.h.
	(requires_inout): Add parentheses around assignment used
	as truth value.
	* loop.c (analyze_loop_iterations): Wrap prototype and definition
	in macro HAVE_decrement_and_branch_on_count.
	(insert_bct, instrument_loop_bct): Likewise.
	(move_movables): Add parentheses around assignment used as
	truth value.
	(consec_sets_invariant_p): Likewise.
	(maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0.
	* objc/objc-act.c: Include stdlib.h.
	(lookup_method_in_protocol_list): Wrap empty else-statement body
	in braces.
	(lookup_protocol_in_reflist): Likewise.
	(objc_add_static_instance): Remove unused variables `decl_expr'
	and `decl_spec'.
	(get_objc_string_decl): Remove unused variable `decl'.
	(generate_static_references): Remove unused variables `idecl' and
	`instance'.
	(check_protocols): Wrap empty else-statement body in braces.
	* protoize.c: Include stdlib.h.
	(substr): Add parentheses around assignment used as truth value.
	(abspath): Likewise.
	(shortpath): Likewise.
	* regmove.c (fixup_match_1): Add parentheses around assignment
	used as truth value.
	* reload.c (push_secondary_reload): Remove unused variable `i'.
	(find_reloads): Add parentheses around assignment used as truth
	value.
	* reload1.c: Include stdlib.h.
	* rtl.h: Correct typo in prototype of offsettable_memref_p.
	* stmt.c (add_case_node): Add parentheses around assignment used
	as truth value.
	(case_tree2list): Likewise.
	* tree.c (valid_machine_attribute): Wrap variable `decl_attr_list'
	in macro VALID_MACHINE_DECL_ATTRIBUTE.  Wrap variable
	`type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE.
	(merge_attributes): Add explicit braces to avoid ambiguous
	`else'.
	* unroll.c (copy_loop_body): Wrap variable `cc0_insn' in
	macro HAVE_cc0.
	* varasm.c: Include stdlib.h.

From-SVN: r18290
1998-02-28 07:06:53 +00:00
Jason Merrill
b57d92255a dwarf2out.c: Add old_args_size.
* dwarf2out.c: Add old_args_size.
	(dwarf2out_args_size): Use it.
	(dwarf2out_begin_prologue): Initialize it.
	(dwarf2out_stack_adjust): If !asynchronous_exceptions, save up
	pushed args until we see a call.
	* final.c (final_scan_insn): Hand CALL_INSNs off to the dwarf2 code
	before outputting them.
	* cplus-dem.c (demangle_template_template_parm): New function.
	(demangle_template): Handle template template parameters.

From-SVN: r17685
1998-02-05 20:18:06 -05:00
Jeff Law
b729186a44 c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>.
* c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>.  Add
	prototype for `handle_sysv_pragma', and make it static.  Add
	parentheses around assignment used as truth value.
	* combine.c (combine_instructions): Protect variable `prev' with
	macro HAVE_cc0.
	(can_combine_p): Protect variable `link' with AUTO_INC_DEC.
	(extract_left_shift): Add parentheses around operand of &.
	(merge_outer_ops): Avoid an empty body in an else-statement.
	(gen_rtx_combine): Remove unused variable `i'.
	* sparc/gmon-sol2.c: Include <fcntl.h>.  Make return type of
        function monstartup `void'.  Likewise for internal_mcount.  Add
        `static void' prototype for moncontrol.  Reconcile sprintf format
        vs. args.
	* sparc/sparc.c: Include <stdlib.h> and <string.h>/<strings.h>.
	Make return type of function_arg_slotno explicitly `int'.
	(reg_unused_after): Add	parentheses around assignment used as
	truth value.
	(save_regs): Add explicit braces to avoid ambiguous `else'.
	(function_arg_slotno): Add parentheses around && within ||.
	(function_arg_pass_by_reference): Likewise.
	(sparc_flat_output_function_prologue): Reconcile fprintf format
	vs. args.
	* svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
	assignment used as truth value.
	* cplus-dem.c: Include <stdlib.h>.
	(demangle_signature): Avoid an empty body in an else-statement.
	(do_type): Remove unused variable `lvl'.
	* cppexp.c: Don't have <stdlib.h> depend on MULTIBYTE_CHARS.
	Include <string.h>/<strings.h>.
	(cpp_lex): Remove unused variable `namelen'.
	(cpp_lex): Explicitly declare `num_chars' as an int.
	* cpplib.c: Avoid duplicate inclusion of <stdlib.h>, include
	<unistd.h> instead.  Explicitly declare is_system_include
	returning int.
	(make_assertion): Remove unused variable `kt'.
	(cpp_expand_to_buffer): Hide variable `obuf'.
	(output_line_command): Remove unused variables, `line_end',
	`line_cmd_buf' and `len'.
	(macarg): Remove unused variable `arg_start'.
	(special_symbol): Remove unused variable `i'.  Add parentheses
	around assignment used as truth value.
	(do_include):  Remove unused variables `pcfname' and `retried',
	hide `pcf' and `pcfbuflimit'.
	(do_line): Remove unused variable `i'.
	(finclude): Hide variable `missing_newline'.
	(cpp_handle_options): Remove unused variable `j'.
	(read_token_list): Remove unused variable `eofp'.
	(cpp_error_with_line): Remove unused variable `i'.
	(cpp_warning_with_line): Likewise.
	(cpp_pedwarn_with_line): Explicitly declare `column' as int.
	(cpp_error_from_errno): Remove unused variable `i'.
	* cse.c (invalidate): Add parentheses around assignment used as
	truth value.
	(find_best_addr): Move declaration of variable `our_cost' inside
	the conditional macro where its used.
	(fold_rtx): Avoid an empty body in an if-statement.
	(cse_insn): Wrap variables  `this_insn_cc0_mode' and
	`this_insn_cc0' in macro HAVE_cc0.
	* dwarf2out.c: Include <stdlib.h> and <string.h>/<string.h>.
	(ASM_OUTPUT_DWARF_DATA8):  Reconcile format vs. args in fprintf's.
	(output_uleb128): Likewise.
	(output_sleb128): Likewise.
	(output_cfi): Likewise.
	(output_call_frame_info): Remove unused variables `j', `fde_size'
	and `fde_pad'.
	(comp_unit_has_inlines): Hide declaration as per rest of file.
	(size_of_line_prolog): Correct typo in prototype.
	(add_arange): Likewise.
	(output_aranges): Likewise.
	(add_name_and_src_coords_attributes): Likewise.
	(gen_array_type_die): Likewise.
	(gen_inlined_subroutine_die): Likewise.
	(equate_decl_number_to_die): Remove unused variable `i'.
	(print_die): Reconcile format vs. args in fprintf's.
	(print_dwarf_line_table): Likewise.
	(output_die): Likewise.
	(output_line_info): Likewise.
	(add_subscript_info): Avoid an empty body in an else-statement.
	(gen_subprogram_die): Remove unused variable `fp_loc'.
	* dwarfout.c: Explicitly declare `next_pubname_number' as int.
	Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE
	macro.  Protect `src_coords_attribute' prototype with
	DWARF_DECL_COORDINATES macro.  Hide `output_entry_point_die'
	prototype as in the rest of the file.  Likewise for
	`output_pointer_type_die' and `output_reference_type_die'.  Remove
	prototype for `type_of_for_scope'.
	(output_unsigned_leb128): Reconcile format vs. args in fprintf.
	(type_attribute): Add explicit braces to avoid ambiguous `else'.
	* final.c: Include <stdlib.h> and <string.h>/<strings.h>.
	(shorten_branches): Protect declaration of tmp_length with
	SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros.
	(profile_function): Protect declaration of `sval' and `cxt'
	variables with appropriate macros.
	(final_scan_insn): Likewise for `note' variable.  Add explicit
	braces to avoid empty body in an if-statement.
	(output_asm_insn): Move variable `i' inside macro conditional
	where it is used.  Add parentheses around assignment used as truth
	value.
	(asm_fprintf) Likewise, likewise.
	* fix-header.c (main): Remove unused variable `done'.  Protect
	declaration of `i' with FIXPROTO_IGNORE_LIST.
	* pexecute.c: Include <unistd.h>.  Prototype `my_strerror'.
	* print-rtl.c (print_inline_rtx): Explicitly declare the parameter
	`ind'.
	* profile.c: Include <string.h>/<strings.h>.
	(instrument_arcs): Remove unused variables `note', `inverted',
	`zero' and `neg_one'.
	(branch_prob): Avoid empty body in an if-statement.
	* regclass.c: Include <stdlib.h>.
	(reg_alternate_class): Explicitly declare parameter `regno'.
	* regmove.c (regmove_optimize): Remove unused variable `p'.  Add
	parentheses around assignment used as truth value.
	(find_matches):  Remove unused variables `output_operand' and
	`matching_operand'.
	(fixup_match_1): Remove statement with no effect: "if (0) ;".
	* scan.c (sstring_append): Explicitly declare `count' as int.
	(scan_string): Explicitly declare parameter `init' as int.
	* sched.c: Include <stdlib.h>.
	(BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |.
	(rank_for_schedule): Add parentheses around assignment used as
	truth value.
	(schedule_block): Likewise.
	(regno_use_in): Likewise.
	(schedule_insns): Remove unused variable `i'.
	* toplev.c: Include <stdlib.h> and <string.h>/<strings.h>.
	(v_message_with_decl): Remove unused variable `n'.
	(botch): Explicitly declare parameter `s' as char *.
	(main): Add parentheses around assignment used as truth value.
	* tree.c (make_node): Protect the variable `kind' with the
	GATHER_STATISTICS macro.
	(real_value_from_int_cst): Move variable `e' inside conditional
	macro area where it is used.
	(tree_last): Add parentheses around assignment used as truth value.
	(build1): Protect the variable `kind' with the GATHER_STATISTICS
	macro.
	(print_obstack_statistics): Reconcile format vs. args in fprintf.
	Protect variables `i', `total_nodes', and `total_bytes' with the
	GATHER_STATISTICS macro.
Lots more -W -Wall warnings disappear.

From-SVN: r17516
1998-01-27 15:11:45 -07:00
Richard Henderson
38a448ca5d alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO...
* alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO;
change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...).
* caller-save.c, calls.c, combine.c, cse.c: Likewise.
* dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise.
* final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise.
* halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise.
* profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise.
* reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise.
* unroll.c, varasm.c: Likewise.
* config/alpha/alpha.c, config/alpha/alpha.md: Likewise.

From-SVN: r17357
1998-01-14 15:10:50 -08:00
Kaveh R. Ghazi
1d300e19b6 bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration.
* bitmap.c (bitmap_clear): Ensure `inline' is at the beginning
        of the declaration.
        * c-decl.c (finish_decl): Use parentheses around && within ||.
        * rtl.c: Include stdlib.h.
        (read_skip_spaces): Add parentheses around assignments used as
        truth values.
        (read_rtx): Initialize list_rtx.
        * cppexp.c (parse_number): Use || when operands are truth values.
        * alias.c (find_base_value): Add default case.
        (memrefs_conflict): Likewise.
        * combine.c (sets_function_arg_p): Likewise.
        * genemit.c (gen_exp): Likewise.
        * local-alloc.c (contains_replace_regs): Likewise.
        * rtlanal.c (jmp_uses_reg_or_mem): Likewise.
        * fold-const.c (fold_convert): Use "&&" for truth values.
        (fold): Add default case.
        * sdbout.c (sdbout_field_types): Fix typo in declaration.
        (sdbout_one_type): Add default case.
        * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS.
        (some_operand): Add default case.
        (input_operand): Likewise.
        (signed_comparison_operator): Likewise.
        (divmod_operator): Likewise.
        (alpha_set_memflags_1): Likewise.
        * reload1.c (reload_cse_simplify_operands): Ensure function
        always returns a value.
        * scan-decls.c (scan_decls): Likewise.
        * c-lex.c (skip_white_space): Fix typo in declaraion.
        * c-typeck.c (comp_target_types): Add parentheses around assignment
        used as truth value.
        (print_spelling): Likewise.
        (constructor_implicit, constructor_result): Remove unused variables.
        * collect2.c (scan_library): Protect prototype with
        #ifdef SCAN_LIBRARIES.
        * emit-rtl.c (find_line_note): Fix typo in declaration.
        * final.c (asm_insn_count): Protect prototype with
        #ifdef HAVE_ATTR_length.
        * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC.
        (try_pre_increment_1, try_pre_increment): Likewise.
        * regclass.c (auto_inc_dec_reg_p): Protect prototype with
        #ifdef FORBIDDEN_INC_DEC_CLASSES.  Make return type explicit.
        * gcov-io.h (__store_long, __write_long, __read_long): Fix
        unsigned/signed comparisons.
        * gcov.c (read_files): Remove unused "first_type" variable.
        (scan _for_source_files): Initialize s_ptr.
        (function_summary): Eliminate "%lf" formatting, use %ld for
        longs.
        (output_data): Initialize branch_probs and last_line_num.
        Eliminate "%lf" formatting, use "%ld" for longs.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r17158
1997-12-20 04:31:54 -07:00
Jeff Law
e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Mike Stump
9ad8a5f011 except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG notes for sjlj exceptions too.
* except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG
        notes for sjlj exceptions too.
        (expand_eh_region_end): Similarly for EH_REGION_END notes.
        (exception_optimize): Optimize EH regions for sjlj exceptions too.
        * final.c (final_scan_insn): Don't output labels for EH REGION
        notes if doing sjlj exceptions.

From-SVN: r16266
1997-11-01 21:43:34 -07:00
Jason Merrill
c5cec899dd dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/
* dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/

	* final.c (final_end_function): Also do dwarf2 thing if
	DWARF2_DEBUGGING_INFO.
	(final_start_function): Likewise.

From-SVN: r15713
1997-09-25 00:57:50 -04:00
Jason Merrill
6020d3605c final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code.
* final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code.
	* dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along.
	(dwarf2out_stack_adjust): A BARRIER resets the args space to 0.

	* except.c (end_eh_unwinder): Subtract 1 from return address.
	* libgcc2.c (__throw): Likewise.
	(find_exception_handler): Don't change PC here.  Compare end with >.

From-SVN: r15554
1997-09-18 19:33:56 -04:00
Jason Merrill
0021b564f4 dwarf2 EH support
From-SVN: r15255
1997-09-10 14:00:28 -04:00
Jeff Law
db7cafb0ad version.c: Bump for snapshot.
* version.c: Bump for snapshot.

        * expmed.c (expand_divmod): Make op1_is_pow2 depend on unsignedp
        for negative constants.  Promote EXACT_DIV_EXPR to TRUNC_DIV_EXPR
        when op1_is_pow2.

        * final.c (shorten_branches): During first pass, assume worst
        possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns.

        * Makefile.in (distclean): Remove various things left around
        by running the testsuite.

From-SVN: r15136
1997-09-07 16:10:34 -06:00
J"orn Rennecke
04da53bd68 final.c (shorten_branches): Don't count the lengths of deleted instructions.
* final.c (shorten_branches): Don't count the lengths of deleted
        instructions.

From-SVN: r15074
1997-09-04 09:47:40 -06:00
Jason Merrill
a6ab3aad51 x
From-SVN: r14390
1997-07-04 18:49:39 +00:00
Richard Kenner
b88c92ccb2 (final_scan_insn): Use single_set to check cc_status.flags.
From-SVN: r14177
1997-06-09 09:19:15 -04:00
Richard Kenner
499df3393d (profile_function): Call function_section, not text_section.
From-SVN: r14076
1997-05-17 16:26:47 -04:00
Mike Stump
db3cf6fb33 reformat a little to match GNU coding standards.
From-SVN: r14024
1997-05-06 23:05:54 +00:00
Richard Kenner
65ed39df89 (profile_function): Only call ASM_OUTPUT_REG_{PUSH,POP} if defined.
From-SVN: r13937
1997-04-20 12:25:03 -04:00
Richard Kenner
0b73ca18ad (profile_function): Save the static chain register around the call to
the profiler function.

From-SVN: r13865
1997-04-13 08:44:41 -04:00
Doug Evans
9e2f9a7f6a final.c (LONG_TYPE_SIZE): Define.
* final.c (LONG_TYPE_SIZE): Define.
	(count_instrumented_arcs): New variable.
	(end_final, profile_after_prologue, leaf_function_p): Add support
	for profile_arc_flag.
	(add_bb): Only call CC_STATUS_INIT if HAVE_cc0.

From-SVN: r13813
1997-03-28 22:35:56 +00:00
Jim Wilson
3d14e82f05 (shorten_branches): Split all insns before computing insn lengths.
(shorten_branches): Split all insns before computing insn
lengths.
(final_scan_insn, case default): If HAVE_ATTR_length defined, call
abort for any insn that has a '#' output template.

From-SVN: r13744
1997-03-18 14:55:01 -08:00
Jason Merrill
a1d7ffe39c x
From-SVN: r13652
1997-02-16 10:05:43 +00:00
Jason Merrill
469ac9939b x
From-SVN: r13305
1996-12-13 01:31:47 +00:00
Jason Merrill
a94dbf2c26 x
From-SVN: r13258
1996-12-09 22:31:23 +00:00
Richard Kenner
21e3a81b93 (asm_fprintf): Use "ll" prefix for a long long HOST_WIDE_INT.
(output_{asm_insn,addr_const}): Use HOST_WIDE_INT_PRINT_*.

From-SVN: r13174
1996-11-15 14:13:58 -05:00
Jason Merrill
9a666dda81 x
From-SVN: r13160
1996-11-15 07:14:08 +00:00
Jason Merrill
d291dd49ee DWARF2
From-SVN: r12920
1996-10-09 01:52:26 +00:00
Torbjorn Granlund
2f16edb13c (final): Update insn_current_address before calling final_scan_insn.
From-SVN: r12918
1996-10-08 23:36:57 +00:00
Jason Merrill
7aecea252c DWARF
From-SVN: r12904
1996-10-04 23:17:36 +00:00
Mike Stump
3d1953912d install EH code
From-SVN: r12548
1996-07-23 19:58:32 +00:00
Mike Stump
0f41302f47 formatting tweaks
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Stan Cox
462da2af3d (final_scan_insn): Modify conditional moves whose cc is nonstandard.
From-SVN: r11943
1996-05-06 21:01:51 +00:00
Jason Merrill
2786cbadc7 -fno-common change
From-SVN: r11940
1996-05-06 18:36:48 +00:00
Richard Kenner
30f5e9f517 (final_scan_insn): Allow removal of redundant test and compare
instructions that use clobbers.

From-SVN: r11806
1996-04-16 08:53:07 -04:00
Richard Kenner
03ffa17103 (final_scan_insn, case CODE_LABEL): Invoke FINAL_PRESCAN_INSN if
FINAL_SCAN_LABEL is defined.

From-SVN: r11548
1996-03-16 19:31:33 -05:00
Richard Kenner
47431dff3c (end_final): Extended header increased to 11 words.
(profile_after_prologue): FUNCTION_BLOCK_PROFILER uses count_basic_blocks
instead profile_label_no.

From-SVN: r10849
1995-12-24 17:41:43 -05:00
Richard Kenner
3c7342722d (final_start_function): Move call to sdbout_begin_function back to...
(final_start_function): Move call to sdbout_begin_function back to
final_scan_insn on MIPS systems so parameter descriptions are
recognized.

From-SVN: r10591
1995-11-26 13:50:57 -05:00
Richard Kenner
c7eee2df1d (final_scan_insn): When recur for instruction in delay slot...
(final_scan_insn): When recur for instruction in delay slot, add loop
around recursive call in case the instruction gets split.

From-SVN: r10511
1995-10-26 08:01:21 -04:00
Richard Kenner
5fad689870 (final_start_function): Always call sdbout_begin_function and
xcoffout_begin_function, even if no line number info.

From-SVN: r10231
1995-08-13 21:38:53 -04:00
Richard Kenner
2e2bbce29a (final_start_function): If SDB_DEBUG, call sdbout_begin_function.
If XCOFF_DEBUG, call xcoffout_begin_function instead of
xcoffout_output_first_source_line.
(final_scan_insn): Don't call sdbout_begin_function or xcoffout_begin_function.

From-SVN: r10181
1995-07-28 09:02:42 -04:00
Richard Kenner
fff752ad80 (final_scan_insn): Fix error in last change.
From-SVN: r10081
1995-06-28 17:29:39 -04:00
Richard Kenner
de2b56f93d (final_scan_insn): Don't call alter_cond unless condition is on cc0.
From-SVN: r10062
1995-06-27 12:39:46 -04:00
Richard Kenner
940d9d638b Update FSF address.
From-SVN: r9959
1995-06-15 07:33:25 -04:00
Torbjorn Granlund
bb4aaf18a9 (shorten_branches): For non-optimizing compiles, break after first pass.
From-SVN: r9514
1995-04-27 20:18:13 +00:00
Richard Kenner
cb64953075 (output_asm_name): New function, using code taken from output_asm_insn.
(output_asm_insn): If flag_print_asm_name, print the comment after the
first assembler instruction even in multi-instruction templates.

From-SVN: r9030
1995-02-22 08:12:44 -05:00
Richard Kenner
5a1a6efdc8 (split_double): Handle CONST_INT that holds both words.
From-SVN: r9028
1995-02-22 07:52:50 -05:00
Doug Evans
4d1065ed1b varasm.c (function_section): New function.
* varasm.c (function_section): New function.
	(assemble_start_function): Call it.
	* output.h (function_section): Declare it.
	* final.c (final_scan_insn): Call function_section instead of
	text_section.
	* dwarfout.c (dwarfout_begin_block): Likewise.
	(dwarfout_end_block): Likewise.
	(dwarfout_label): Likewise.
	(dwarfout_begin_function): Likewise.
	(dwarfout_end_function): Likewise.
	(dwarfout_line): Likewise.

From-SVN: r8942
1995-02-13 22:08:43 +00:00
Richard Kenner
eac400810b (high_{block,function}_linenum): New variables.
(final_start_function): Initialize them.
(final_end_function): Pass highest line number to function end debugging
routines.
(final_scan_insn): Pass highest line number in block to block end debugging
function.
(output_source_line): Update highest line in block and function.

From-SVN: r8827
1995-01-27 16:54:55 -05:00
Ian Lance Taylor
f76b9db287 Check target endianness at run time, not compile time
From-SVN: r8470
1994-11-16 21:10:09 +00:00
Doug Evans
5d0930ea93 (asm_insn_count): Handle ASM_INPUTs too.
From-SVN: r8111
1994-09-21 00:05:57 +00:00
Jim Wilson
1ba298e525 (getpwd): Declare.
From-SVN: r7755
1994-07-12 18:31:36 -07:00
Jim Wilson
67e23d2f5c (end_final): Store full path name in .d file not just the filename.
From-SVN: r7745
1994-07-12 10:09:32 -07:00
Richard Kenner
14e7bf7c23 (end_final,profile_function): Profiling variables are size of pointer,
not int.

From-SVN: r7617
1994-06-30 05:46:10 -04:00
Doug Evans
3cf2715de9 Restore to rcs version 1.59 (1.60 is an empty file).
From-SVN: r7614
1994-06-30 03:43:24 +00:00
Richard Kenner
0d45dc27a1 (end_final,profile_function): Profiling variables are size of pointer,
not int.

From-SVN: r7609
1994-06-29 18:57:34 -04:00
Jim Wilson
b2526fe621 (output_source_line): Call xcoffout_source_line.
From-SVN: r7409
1994-05-31 17:23:08 -07:00
Richard Kenner
bc29e2ad03 (split_double): Fix arg of REAL_VALUE_TO_TARGET_DOUBLE.
From-SVN: r7314
1994-05-16 17:52:21 -04:00
Richard Kenner
318e45ce5a Include stdio.h and ctype.h early.
Add prototypes for static functions.

From-SVN: r7115
1994-04-21 15:29:50 -04:00
Jim Wilson
bdbc824c46 (final_scan_insn): Pass new arg, block num, to sdbout_end_block.
From-SVN: r6965
1994-04-04 14:38:54 -07:00
Richard Kenner
04fe43855a Include <stdarg.h> instead of "gstdarg.h"; similarly for varargs.
From-SVN: r6922
1994-03-30 17:15:20 -05:00
Richard Kenner
6e701b09fc (output_source_line): Remove decl of unused variable.
From-SVN: r6881
1994-03-25 14:07:46 -05:00
Richard Kenner
39178486b7 (final_scan_insn): Always set OPS and use alloca.
From-SVN: r6643
1994-02-27 10:47:55 -05:00
Jim Wilson
9316e820d0 (end_final): Pass BIGGEST_ALIGNMENT not align to
ASM_OUTPUT_ALIGNED_LOCAL.

From-SVN: r6577
1994-02-16 12:50:51 -08:00
Jeff Law
f7714ced3d final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide default definition.
* final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide default
        definition.
        (asm_insn_count): Use IS_ASM_LOGICAL_LINE_SEPARATOR rather
        than assuming the logical line separator is ';'.

From-SVN: r6524
1994-02-10 13:58:13 -07:00
Richard Kenner
4f90e4a0f7 If __STDC__, include gstdarg and use ANSI form of varargs.
From-SVN: r6514
1994-02-10 08:07:10 -05:00
Richard Kenner
177ad45ae0 (profile_function): Set ALIGN properly.
From-SVN: r6242
1993-12-15 18:48:15 -05:00
Steve Chamberlain
e748c6bd0c *** empty log message ***
From-SVN: r6138
1993-11-22 19:00:28 +00:00
Richard Kenner
d5c724c4e7 (dialect_number): New variable.
(init_final): Initialize it.
(output_asm_insn, asm_fprintf): Support ASSEMBLER_DIALECT.

From-SVN: r5744
1993-10-12 07:58:29 -04:00
Richard Stallman
bfe3c3615a (final_scan_insn): Call walk_alter_subreg for operands that are PLUS
or MULT, before constrain_operands.

From-SVN: r5743
1993-10-12 11:56:41 +00:00
Richard Kenner
7be2640ddb (asm_fprintf): Add cases for 'w' and 'l'.
From-SVN: r5653
1993-10-06 21:46:49 -04:00
Michael Meissner
92832bb59a Update basic block profiling.
From-SVN: r5249
1993-09-02 10:50:41 +00:00
Richard Stallman
6baacf6322 Include ctype.h.
From-SVN: r4743
1993-06-26 12:27:06 +00:00
Richard Stallman
4e75433b46 (output_addr_const): Don't insert a leading space
in the CONST_DOUBLE_HIGH != 0 case.

From-SVN: r4684
1993-06-17 04:44:04 +00:00
Richard Stallman
8fa20c2630 (shorten_branches): Conditionalize last change
on SHORTEN_WITH_ADJUST_INSN_LENGTH.

(shorten_branches): Call ADJUST_INSN_LENGTH during the shortening phase.

From-SVN: r4600
1993-05-31 03:59:30 +00:00
Richard Stallman
e8b1e86872 (shorten_branches): Do not call insn_current_length with an insn which has a non-varying length.
(shorten_branches): Do not call insn_current_length
with an insn which has a non-varying length.  Use insn_lengths instead.

From-SVN: r4590
1993-05-29 00:11:59 +00:00
Richard Stallman
81d3c53859 (output_addr_const): Don't printing leading zeros.
From-SVN: r4466
1993-05-15 13:06:59 +00:00
Richard Stallman
4b438c9e61 (split_double) : Use REAL_VALUE macros to extract ints
from float mode CONST_DOUBLEs.

From-SVN: r3937
1993-03-31 05:46:40 +00:00
Jim Wilson
4cc70cf4bf (end_final): Don't call assemble_zeros with an size argument of zero.
From-SVN: r3489
1993-02-18 17:20:58 -08:00
Richard Kenner
f65b79390a (final_scan_insn): Call alter_subreg on duplicate operands (in case we
need to split the insn).

From-SVN: r3318
1993-01-24 07:18:26 -05:00
Brendan Kehoe
c716c35df1 Undo previous change.
From-SVN: r3252
1993-01-15 16:01:03 -05:00
Brendan Kehoe
c3c305882b integrate.c (const_equiv): Delete decl, since it's never defined.
* integrate.c (const_equiv): Delete decl, since it's never defined.
	(fold_out_const_cc0): Likewise.
	* loop.c (delete_insn_forces): Likewise.
	* final.c (alter_cond): Delete decl, since it's never defined.

From-SVN: r3209
1993-01-12 18:29:55 -05:00
Tom Wood
89881415f5 (final): When producing SDB debugging info...
(final): When producing SDB debugging info, delete line
	number notes from inlined functions in other files as well as
	duplicate line number notes.

From-SVN: r2763
1992-11-20 20:37:05 +00:00
Richard Stallman
bc9aee2d4d (output_addr_const): Always use FILE, not asm_out_file.
From-SVN: r2508
1992-10-18 08:16:49 +00:00
Richard Stallman
2c16c66660 (output_asm_insn): Advance over the = when processing %=.
From-SVN: r2447
1992-10-14 01:21:59 +00:00
James Van Artsdalen
b329456eff (alter_cond): If CC_NOT_SIGNED, convert signed conditions to unsigned.
From-SVN: r2413
1992-10-12 21:37:11 +00:00
Richard Stallman
1f1fd3b1f4 (output_addr_const): Call simplify_subtraction.
From-SVN: r2403
1992-10-12 08:23:25 +00:00
Tom Wood
8f313754fc (final_scan_insn): Call dwarfout_begin_function.
(final_end_function): Call dwarfout_end_function.

From-SVN: r2359
1992-10-07 20:23:56 +00:00
Richard Kenner
b6c9b49af9 (shorten_branches): Correctly access insn needing delay slot.
From-SVN: r2216
1992-09-23 19:23:47 -04:00
Jim Wilson
61a6dd99fd (only_leaf_regs_used): Check for global_regs.
From-SVN: r2130
1992-09-15 18:03:48 -07:00
Timothy Moore
48f25c7ad6 (shorten_branches): Do shorten branches with delay slots
if the number of delay slots is constant.

From-SVN: r2098
1992-09-10 22:20:15 +00:00
Richard Stallman
ce35884de1 (output_addr_const): If 2nd arg of MINUS is negative integer, put it in parens.
From-SVN: r2090
1992-09-09 20:35:19 +00:00
Richard Stallman
cdd8c058e9 (final_scan_insn): If 2 consec line notes have same line num, can omit one.
From-SVN: r1943
1992-08-25 17:43:28 +00:00
Richard Stallman
bc04dacb8e Move include of stdio.h before output.h.
From-SVN: r1917
1992-08-20 20:18:38 +00:00
Richard Kenner
f8d97cf472 Put include of stdio.h after GCC header files (for i860-stardent-sysv4).
From-SVN: r1905
1992-08-20 05:58:18 -04:00
Richard Stallman
e92b33f508 (final_scan_insn): Call dwarfout_begin_block and
dwarfout_end_block even for -g1.

From-SVN: r1806
1992-08-12 07:28:49 +00:00
Richard Stallman
8f300dc330 (final_scan_insn): Use ASM_OUTPUT_ADDR_DIFF_ELT
and ASM_OUTPUT_ADDR_VEC_ELT only if defined.

From-SVN: r1782
1992-08-07 04:17:06 +00:00
Richard Kenner
aaf5be8b93 entered into RCS
From-SVN: r1737
1992-07-31 13:30:09 -04:00
Richard Kenner
510dd77e95 *** empty log message ***
From-SVN: r1730
1992-07-31 08:11:54 -04:00
Richard Stallman
65e15c1b20 *** empty log message ***
From-SVN: r1689
1992-07-27 03:11:22 +00:00
Richard Stallman
d80ab61eeb *** empty log message ***
From-SVN: r1648
1992-07-21 02:59:00 +00:00
Richard Stallman
edb323d348 *** empty log message ***
From-SVN: r1628
1992-07-19 17:09:11 +00:00
Richard Stallman
fea868cb1a *** empty log message ***
From-SVN: r1622
1992-07-19 00:37:32 +00:00
Richard Stallman
a8b17b3d48 *** empty log message ***
From-SVN: r1620
1992-07-18 04:04:15 +00:00
Charles Hannum
a981452689 *** empty log message ***
From-SVN: r1532
1992-07-08 22:41:03 +00:00
Richard Kenner
906c4e36c6 *** empty log message ***
From-SVN: r1473
1992-07-06 16:04:13 -04:00
Richard Stallman
196cedd028 *** empty log message ***
From-SVN: r1438
1992-07-05 03:31:52 +00:00