Commit Graph

175 Commits

Author SHA1 Message Date
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