Commit Graph

334 Commits

Author SHA1 Message Date
William Cohen
70f4f91ca9 function.h (struct function): Add profile.
* function.h (struct function): Add profile.
	(current_function_profile): New.
	doc/extend.texi: Update documentation.
	* final.c (final_start_function): Use current_function_profile
	instead of profile_flag.
	(profile_after_prologue): Likewise.
	* function.c (expand_function_start): Likewise.
	(expand_function_start): Likewise.
	* config/alpha/alpha.c (direct_call_operand):
	(alpha_does_function_need_gp): Likewise.
	(alpha_expand_prologue): Likewise.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	thumb_expand_prologue: Likewise.
	* config/d30v/d30v.c (d30v_stack_info): Likewise.
	* config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
	(fr30_expand_prologue): Likewise.
	* config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
	* config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
	* config/i386/i386.h (FINALIZE_PIC): Likewise.
	* config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
	* config/i960/i960.c (i960_output_function_prologue): Likewise.
	* config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
	* config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
	(m32r_expand_prologue): Likewise.
	* config/m88k/m88k.c (m88k_layout_frame): Likewise.
	(m88k_expand_prologue): Likewise.
	* config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
	* config/mips/mips.c (compute_frame_size): Likewise.
	(mips_expand_prologue): Likewise.
	(mips_can_use_return_insn): Likewise.
	* config/pa/elf.h (ASM_FILE_START): Likewise.
	* config/pa/pa-linux.h (ASM_FILE_START): Likewise.
	* config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
	* config/pa/som.h (ASM_FILE_START): Likewise.
	* config/romp/romp.c (romp_using_r14): Likewise.
	* config/rs6000/rs6000.c (first_reg_to_save): Likewise.
	(rs6000_stack_info): Likewise.
	* config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/rs6000/xcoff.h (toc_section): Likewise.
	* config/v850/v850.c (compute_register_save_size): Likewise.

From-SVN: r48515
2002-01-03 17:40:07 +00:00
Eric Christopher
ff81832f59 final.c (final_scan_insn): Change 0 -> NULL_RTX in FIND_REG_INC_NOTE call.
2002-01-02  Eric Christopher  <echristo@redhat.com>

	* final.c (final_scan_insn): Change 0 -> NULL_RTX in
	FIND_REG_INC_NOTE call. Update copyright.
	* loop.c (canonicalize_condition): Ditto.
	* reorg.c (delete_scheduled_jump): Ditto.

From-SVN: r48506
2002-01-03 09:18:22 +00:00
Richard Henderson
7687c5b8c6 * final.c (alter_subreg): Assign REGNO after changing the rtx code.
From-SVN: r48432
2001-12-31 13:33:36 -08:00
Graham Stott
1048f2e25d final.c (struct bb_list): Delete.
* final.c (struct bb_list): Delete.
        (struct bb_str): Likewise.

From-SVN: r48408
2001-12-31 03:56:16 +00:00
Richard Sandiford
301d03af8a target.h (asm_out.byte_op, [...]): New fields.
* target.h (asm_out.byte_op, asm_out.aligned_op, asm_out.unaligned_op,
	asm_out.integer): New fields.
	* target-def.h (TARGET_ASM_BYTE_OP, TARGET_ASM_ALIGNED_[HSDT]I_OP,
	TARGET_ASM_UNALIGNED_[HSDT]I_OP, TARGET_ASM_INTEGER): New initialisers.
	(TARGET_ASM_ALIGNED_INT_OP, TARGET_ASM_UNALIGNED_INT_OP): Collect
	the individual initialisers together.
	(TARGET_ASM_OUT): Add the new initialisers.
	* output.h (assemble_integer): Return bool.
	(integer_asm_op): Declare.
	(default_assemble_integer): Declare.
	(assemble_aligned_integer): New interface to assemble_integer.
	* varasm.c (integer_asm_op): New function to select pseudo-op.
	(default_assemble_integer): Default implementation of asm_out.integer.
	(assemble_integer): Use the new target hook.  Split objects into
	words or bytes if the target hook fails.  Return bool.
	* doc/tm.texi (ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE, ASM_OUTPUT_SHORT,
	ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_OUTPUT_QUADRUPLE_INT,
	UNALIGNED_SHORT_ASM_OP,	UNALIGNED_INT_ASM_OP,
	UNALIGNED_DOUBLE_INT_ASM_OP): Undocument.
	Document new target hooks.

	* defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Use integer_asm_op.
	* dwarf2asm.c (unaligned_integer_asm_op): Remove.
	(dw2_assemble_integer): New.
	(dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
	dw2_asm_output_pcrel, dw2_asm_output_addr, dw2_asm_output_addr_rtx,
	dw2_asm_output_encoded_addr_rtx): Use it.
	(dw2_asm_output_nstring): Use assemble_integer for the null terminator.
	(dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128): Use
	integer_asm_op to get the byte pseudo-op.  Use assemble_integer
        if it returns NULL.
	* dwarf2asm.h (dw2_assemble_integer): Declare.
	* dwarfout.c: Include dwarf2asm.h.  Use dwarf2 functions for the
	default	implementation of most macros.
	(output_unsigned_leb128): Use dw2_asm_output_data.
	(output_signed_leb128, dwarfout_source_line): Likewise.
	(output_reg_number): Use dw2_assemble_integer.
	(generate_macinfo_entry): Separate the type and offset arguments.
	Use assemble_integer to write the value.
	(dwarfout_start_source_file): Update generate_macinfo_entry usage.
	(dwarfout_end_source_file, dwarfout_define, dwarfout_undef): Likewise.
	* final.c (output_addr_const): Don't put brackets round a subtracted
	symbol value or ".".
	* halfpic.c (half_pic_finish): Use assemble_aligned_integer.

	* config/1750a/1750a.c (assemble_integer_1750a): New,
	* config/alpha/alpha.h (literal_section): Avoid ASM_OUTPUT_INT.
	* config/arc/arc.c (arc_assemble_integer): New.
	* config/arc/arc.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT.
	* config/arm/arm.c (arm_poke_function_name): Likewise.
	(arm_assemble_integer): New, extracted from...
	* config/arm/arm.h (OUTPUT_INT_ADDR_CONST): ...here, now removed.
	(ARM_TRAMPOLINE_TEMPLATE, ARM_FUNCTION_PROFILER): Avoid ASM_OUTPUT_INT.
	(ARM_FUNCTION_PROFILER): Likewise.
	* config/avr/avr-protos.h (asm_output_byte): Remove.
	(asm_output_char, asm_output_short): Remove.
	* config/avr/avr.c (avr_assemble_integer): New.
	(asm_output_byte, asm_output_char, asm_output_short): Remove.
	* config/clipper/clipper.h (ASM_LONG): Remove.
	* config/dsp16xx/dsp16xx-protos.h (asm_output_long): Remove.
	* config/dsp16xx/dsp16xx.c (asm_output_long): Remove.
	* config/elxsi/elxsi.c (elxsi_assemble_integer): New.
	* config/i370/i370.c (i370_hlasm_assemble_integer): New.
	* config/i370/i370.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_SHORT.
	(ASM_BYTE, ASM_SHORT, ASM_LONG): Delete.
	* config/i386/att.h, (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP.
	* config/i386/linux.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Use
	ASM_LONG instead of UNALIGNED_INT_ASM_OP.
	* config/i386/sco5.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
	(ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP.
	* config/i386/sysv4.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Use
	ASM_LONG instead of UNALIGNED_INT_ASM_OP.
	* config/i860/fx2800.h (ASM_FILE_END): Avoid ASM_LONG.
	* config/i860/i860.c (i860_output_function_epilogue): Likewise.
	* config/i860/i860.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT.
	(ASM_SHORT, ASM_LONG): Undefine.
	* config/i860/paragon.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP.
	* config/i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
	* config/i960/i960.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT.
	* config/ia64/ia64.c (ia64_assemble_integer): New.
	* config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use integer_asm_op.
	(ASM_OUTPUT_DWARF_PCREL): Likewise.
	* config/m68hc11/m68hc11.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
	ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT): Avoid ASM_LONG.
	(ASM_SHORT, ASM_LONG): Remove.
	* config/m68k/m68k.h (INT_OP_GROUP): New macro.
	(INT_OP_STANDARD, INT_OP_DOT_WORD, INT_OP_NO_DOT, INT_OP_DC): New
	macros, the allowed values for INT_OP_GROUP.
	* config/m68k/amix.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP
	* config/m68k/atari.h (ASM_OUTPUT_ASCII): Likewise
	* config/m68k/m68kelf.h (ASM_OUTPUT_ASCII): Likewise
	* config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP): Remove.
	(INT_OP_GROUP): Define to INT_OP_NO_DOT.
	* config/m68k/dpx2.h (ASM_LONG): Undefine.
	(INT_OP_GROUP): Define to INT_OP_DC.
	* config/m68k/dpx2g.h (ASM_LONG): Undefine.
	* config/m68k/hp320.h (INT_OP_GROUP): Define to INT_OP_NO_DOT.
	* config/m68k/lynx.h (ASM_LONG): Undefine.
	* config/m68k/dpx2g.h (ASM_LONG): Undefine.
	* config/m68k/m68kelf.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP.
	* config/m68k/m68kv4.h (ASM_OUTPUT_ASCII): Likewise.
	(TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_*.
	* config/m68k/mot3300.h (INT_OP_GROUP): Define to INT_OP_STANDARD
	for GAS and INT_OP_NO_DOT otherwise.
	(ASM_CHAR, ASM_BYTE, ASM_SHORT, ASM_LONG): Remove.
	(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Avoid ASM_LONG.
	(ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP.
	* config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP): Remove.
	(INT_OP_GROUP): Define to INT_OP_STANDARD.
	(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Avoid LONG_ASM_OP.
	(ASM_OUTPUT_ASCII): Avoid BYTE_ASM_OP.
	* config/m68k/tower-as.h (ASM_LONG): Remove.
	(INT_OP_GROUP): Define to INT_OP_NO_DOT.
	* config/m88k/m88k.c (output_tdesc): Avoid ASM_LONG.
	* config/m88k/m88k.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT.
	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Avoid ASM_LONG.
	* config/mips/iris5.h (TARGET_IRIX5): Define.
	* config/mips/mips.c (mips_assemble_integer): New.
	* config/mips/sni-svr4.h (ASM_LONG): Undefine.
	* config/mmix/mmix-protos.h (mmix_asm_output_double_int): Remove.
	* config/mmix/mmix.c (mmix_assemble_integer): New.
	(mmix_asm_output_double_int): Remove.
	(mmix_print_operand): Call mmix_output_octa directly.
	* config/mmix/mmix.h (ASM_LONG): Remove.
	* config/ns32k/ns32k.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT.
	* config/pa/pa.c (pa_assemble_integer): New.
	(pa_override_options): Only use aligned DI ops on 64-bit targets.
	Only use the unaligned ops if TARGET_GAS.
	* config/pdp11/pdp11.c (pdp11_assemble_integer): New.
	* config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_SHORT.
	* config/pj/pj.h (ASM_LONG): Undefine.
	* config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Undefine.
	* config/rs6000/rs6000.c (rs6000_assemble_integer): New, mostly
	extracted from ASM_OUTPUT_INT in sysv4.h.  Use in_text_section()
	and in_toc_section() rather than the in_section variable.
	(rs6000_override_options): Only use DI ops when TARGET_POWERPC64.
	* config/rs6000/sysv4.h (TOC_SECTION_FUNCTION): Add in_toc_section().
	(RELOCATABLE_NEEDS_FIXUP): Define.
	* config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Change space to tab.
	* config/s390/linux.h (ASM_SHORT, ASM_LONG, ASM_QUAD): Remove.
	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use integer_asm_op
	to get the word directive.
	(ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP.
	* config/s390/s390.c (s390_assemble_integer): New.
	* config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Use
	integer_asm_op to get the word directive.
	* config/sparc/sol2.h (ASM_SHORT, ASM_LONG): Remove.
	* config/sparc/sparc-protos.h (output_double_int): Remove.
	* config/sparc/sparc.c (output_double_int): Move to...
	(sparc_assemble_integer): ...this new function.
	(sparc_override_options): Only use .uaxword if TARGET_ARCH64.
	* config/sparc/sparc.h (ASM_SHORT, ASM_LONG, ASM_LONGLONG): Remove.
	* config/sparc/sysv4.h (ASM_LONG): Remove.
	(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Avoid
	ASM_LONG.
	* config/vax/vax.h (TRAMPOLINE_TEMPLATE): Use assemble_aligned_integer.
	* config/we32k/we32k.h (TRAMPOLINE_TEMPLATE): Likewise.

	* config/1750a/1750a.c, config/a29k/a29k.c, config/alpha/alpha.c,
	config/arc/arc.c, config/arm/arm.c, config/avr/avr.c, config/c4x/c4x.c,
	config/clipper/clipper.c, config/convex/convex.c, config/cris/cris.c,
	config/d30v/d30v.c, config/dsp16xx/dsp16xx.c, config/elxsi/elxsi.c,
	config/fr30/fr30.c, config/h8300/h8300.c, config/i370/i370.c,
	config/i386/i386.c, config/i860/i860.c, config/i960/i960.c,
	config/ia64/ia64.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
	config/m68k/m68k.c, config/m88k/m88k.c, config/mips/mips.c,
	config/mmix/mmix.c, config/mn10200/mn10200.c, config/mn10300/mn10300.c,
	config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
	config/sh/sh.c, config/sparc/sparc.c, config/stormy16/stormy16.c,
	config/v850/v850.c, config/vax/vax.c, config/we32k/we32k.c
	(TARGET_ASM_BYTE_OP, TARGET_ASM_ALIGNED_HI_OP,
	TARGET_ASM_ALIGNED_SI_OP, TARGET_ASM_ALIGNED_DI_OP,
	TARGET_ASM_UNALIGNED_HI_OP, TARGET_ASM_UNALIGNED_SI_OP,
	TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_INTEGER): Redefine as
	appropriate.

	* config/defaults.h, config/darwin.h, config/elfos.h, config/svr3.h,
	config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
	config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
	config/clipper/clipper.h, config/convex/convex.h, config/cris/cris.h,
	config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
	config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
	config/i386/bsd.h, config/i386/djgpp.h, config/i386/i386.h,
	config/i386/sco5.h, config/i386/sol2.h, config/i386/sun386.h,
	config/i860/i860.h, config/i960/i960.h, config/ia64/ia64.h,
	config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/auxas.h,
	config/m68k/dpx2.h, config/m68k/hp320.h, config/m68k/m68k.h,
	config/m68k/mot3300.h, config/m68k/sgs.h, config/m68k/tower-as.h,
	config/m88k/m88k.h, config/mcore/mcore-elf.h, config/mcore/mcore.h,
	config/mips/iris5.h, config/mips/iris6.h, config/mips/mips.h,
	config/mmix/mmix.h, config/mn10200/mn10200.h, config/mn10300/mn10300.h
	config/ns32k/encore.h, config/ns32k/ns32k.h, config/pa/pa-64.h,
	config/pa/pa.h, config/pdp11/pdp11.h, config/pj/pj.h,
	config/romp/romp.h, config/rs6000/linux64.h, config/rs6000/rs6000.h,
	config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/linux.h,
	config/sh/sh.h, config/sparc/linux64.h, config/sparc/sol2.h,
	config/sparc/sp64-elf.h, config/sparc/sparc.h, config/sparc/sysv4.h,
	config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
	config/we32k/we32k.h (ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE, ASM_BYTE_OP,
	ASM_BYTE, ASM_OUTPUT_SHORT, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT,
	UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
	UNALIGNED_DOUBLE_INT_ASM_OP): Undefine, where defined.

From-SVN: r48101
2001-12-17 15:05:40 +00:00
Joseph Myers
d6a7951f20 ChangeLog.2, [...]: Fix spelling errors.
* ChangeLog.2, ChangeLog.3, ChangeLog.5, ChangeLog, alias.c,
	cfgbuild.c, expmed.c, expr.c, final.c, flow.c, fold-const.c,
	function.c, config/alpha/alpha.md, config/alpha/vms-ld.c,
	config/arm/arm.c, config/arm/arm.h, config/c4x/libgcc.S,
	config/i370/i370.c, config/i386/i386.c,
	config/i386/i386-interix.h, config/i386/i386.md,
	config/i386/i386.h, config/i386/netbsd-elf.h, config/ia64/ia64.c,
	config/m32r/m32r-protos.h, config/mcore/mcore.h,
	config/rs6000/rs6000.h, config/sparc/linux64.h,
	config/sparc/sparc.c, config/v850/v850-protos.h,
	config/cris/cris.h, config/s390/s390.md, config/elfos.h: Fix
	spelling errors.

From-SVN: r47815
2001-12-09 20:13:19 +00:00
Kaveh R. Ghazi
b365613798 1750a.md: Add default case in switch.
* 1750a.md: Add default case in switch.
	* alpha/vms.h (INITIAL_ELIMINATION_OFFSET): Add abort clause in
	if-else statement.
	* dsp16xx.c (print_operand_address): Likewise.
	* i386/osf1elf.h (FUNCTION_PROFILER): Const-ify.
	* ia64.md: Add missing braces.
	* rs6000-protos.h (s8bit_cint_operand): Prototype.
	* s390.h (INITIAL_ELIMINATION_OFFSET): Add abort clause in
        if-else statement.
	* stormy16.h (REG_CLASS_CONTENTS): Add missing braces.
	* v850.h (OUTPUT_ADDR_CONST_EXTRA): Don't issue a `return'.
	* dbxout.c (dbxout_source_file): Move a variable into the scope
	where it is used.
	* final.c (profile_function): Mark parameter with
	ATTRIBUTE_UNUSED.
	* genemit.c (gen_expand): Likewise for generated file.
	* insn-addr.h (INSN_ADDRESSES_NEW): Avoid undefined behavior.

From-SVN: r47812
2001-12-09 16:31:53 +00:00
Richard Earnshaw
9f4524f299 final.c (cleanup_subreg_operands): Use recog_data.operand_loc in test for a subreg.
* final.c (cleanup_subreg_operands):  Use recog_data.operand_loc
in test for a subreg.

From-SVN: r47788
2001-12-08 10:49:49 +00:00
Richard Kenner
5af0b89c0d final.c (bb_head, [...]): Deleted; were used only by BB profiler code.
* final.c (bb_head, bb_tail, bb_file_label_num, bb_func_label_num):
	Deleted; were used only by BB profiler code.
	(sbb_head, sbb_tail, sbb_label_num): Likewise.
	(end_final): Delete now-unused vars I, PTR, and SPTR.

From-SVN: r47755
2001-12-07 07:31:06 -05:00
Jan Hubicka
8456b95a5a final.c (count_basic_block, [...]): Kill.
* final.c (count_basic_block, add_bb, add_bb_string):
	Kill.
	(end_final, final_start_function, final, final_scan_insn,
	leaf_function_p): Kill BB profiler related code.
	* flags.h (profile_block_flag): Kill.
	* libgcc2.c (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE,
	BB_BUCKETS, BBINBUFSIZE, bb_edge, bb_func_mode, bb_func,
	__bb, bb_src, bb_dst, bb_tracefile, bb_hashbuckets,
	bb_func_head, bb_callcount, bb_mode, bb_stack, bb_stacksize
	reported, GOPENDECOMPRESS, GOPENCOMPRESS, gopen, gclose,
	__bb_exit_trace_func, __bb_init_prg, __bb_trace_func,
	__bb_trace_func_ret, __bb_init_file, __bb_trace_ret,
	__bb_init_trace_func): Kill.
	* toplev.c (profile_block_flag): Kill.
	(indepdendent_decode_option, process_options): Kill -a related code.
	* alpha.c (direct_call_operand): Likewise.
	* arm.c (arm_expand_prologue, thumb_expand_prologue,
	thumb_expand_epilogue): Likewise.
	* c4x.c (c4x_expand_prologue, c4x_null_epilogue_p): Likewise.
	* c4x.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* d30v.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* fr30.c (fr30_expand_prologue): Kill BB profiler related code.
	* i386.c (ix86_can_use_return_insn_p, ix86_expand_prologue,
	ix86_expand_epilogue, ix86_expand_epilogue): Kill BB profiler related
	code.
	(ix86_output_function_block_profiler, ix86_output_block_profiler): Kill.
	* i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* fr30.c (fr30_expand_prologue): Kill BB profiler related code.
	* i960.c (i960_output_function_prologue): Kill BB profiler related
	code.
	* ia64.c (ia64_compute_frame_size): Likewise.
	* ia64.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* m32r.c (m32r_expand_prolofue): Kill BB profiler related code.
	* m68hc11.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* m68k.c (m68k_output_function_epilogue): Kill BB profiler related code.
	* m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* m88k.c (output_options, m88k_layout_frame, m88k_expand_prologue):
	Kill BB profiler related code.
	* m88k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* mips.c (mips_expand_prologue): Kill BB profiler related code.
	* mmix.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* rs6000.c (rs6000_override_options): Kill BB profiler related code.
	* s960.c (s390_function_prologue): Kill BB profiler related code.
	* s960.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* linux-aout.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill.
	* linux.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill.
	* linux64.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill.
	* sol2.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill.
	* sparc.c (sparc_override_options, eligible_for_sibcall_delay,
	sparc_nonflat_function_epilogue): Kill BB profiler related code.
	(sparc_function_block_profiler, sparc_block_profiler,
	sparc_function_block_profiler_exit): Kill.
	* sparc.h (OVERRIDE_OPTIONS): Kill BB profiler related code.
	(FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* sun4o3.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill.
	* sunos4.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill.
	* stormy16.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.
	* doc/invoke.texi: Kill documentation of -a and -ax.
	* tm.texi (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
	FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE,
	MACHINE_STATE_RESTORE): Kill.

From-SVN: r47712
2001-12-06 11:49:46 +00:00
Neil Booth
c725bd79e7 c-decl.c (grokdeclarator): Use ISO word.
* c-decl.c (grokdeclarator): Use ISO word.
	* cppinit.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* diagnostic.c: Similarly.
	* emit-rtl.c: Similarly.
	* final.c: Similarly.
	* gcc.c: Similarly.
	* tradcpp.c: Similarly.
	* config/arm/arm.c: Similarly.
	* config/arm/arm.h: Similarly.
	* config/avr/avr.c: Similarly.
	* config/avr/avr.h: Similarly.
	* config/c4x/c4x.c: Similarly.
	* config/cris/cris.c: Similarly.
	* config/cris/cris.h: Similarly.
	* config/d30v/d30v.c: Similarly.
	* config/dsp16xx/dsp16xx.c: Similarly.
	* config/dsp16xx/dsp16xx.h: Similarly.
	* config/h8300/h8300.c: Similarly.
	* config/i386/i386.c: Similarly.
	* config/i386/xm-djgpp.h: Similarly.
	* config/i960/i960.h: Similarly.
	* config/m32r/m32r.c: Similarly.
	* config/m68hc11/m68hc11.c: Similarly.
	* config/m88k/m88k.c: Similarly.
	* config/m88k/m88k.h: Similarly.
	* config/mcore/mcore.c: Similarly.
	* config/mcore/mcore.h: Similarly.
	* config/mips/mips.c: Similarly.
	* config/mmix/mmix.c: Similarly.
	* config/pa/pa.c: Similarly.
	* config/rs6000/rs6000.c: Similarly.
	* config/rs6000/sysv4.h: Similarly.
	* config/s390/s390.c: Similarly.
	* config/sparc/sparc.c: Similarly.
	* config/v850/v850-c.c: Similarly.
	* config/v850/v850.c: Similarly.
ch:
	* actions.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* decl.c: Similarly.
	* expr.c: Similarly.
	* inout.c: Similarly.
	* lang.c: Similarly.
	* loop.c: Similarly.
	* nloop.c: Similarly.
	* parse.c: Similarly.
	* satisfy.c: Similarly.
	* tasking.c: Similarly.
	* tree.c: Similarly.
	* typeck.c: Similarly.
cp:
	* typeck2.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
f:
	* com.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* g77spec.c: Similarly.
	* lex.c: Similarly.
java:
	* expr.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* jcf-io.c: Similarly.
	* jcf-parse.c: Similarly.
	* jv-scan.c: Similarly.
	* jvspec.c: Similarly.
	* mangle.c: Similarly.

From-SVN: r47558
2001-12-03 19:15:19 +00:00
Richard Henderson
998d7deb14 rtl.h (mem_attrs): Rename decl to expr; adjust all users.
* rtl.h (mem_attrs): Rename decl to expr; adjust all users.
        (MEM_EXPR): Rename from MEM_DECL; adjust all users.
        * emit-rtl.c (set_mem_expr): Rename from set_mem_decl.
        * expr.h, final.c, reload1.c: Adjust users.

        * alias.c (nonoverlapping_component_refs_p): New.
        (decl_for_component_ref, adjust_offset_for_component_ref): New.
        (nonoverlapping_memrefs_p): Use them.
        * emit-rtl.c (component_ref_for_mem_expr): New.
        (set_mem_attributes): Use it.
        (set_mem_offset): New.
        * expr.c (expand_assignment): Call set_mem_attributes for
        inner references; adjust the memory offset as needed.
        * print-rtl.c (print_mem_expr): New.
        (print_rtx): Use it.

From-SVN: r47534
2001-12-02 11:04:23 -08:00
Douglas B Rupp
7a0c8d7108 vms.h (VMS_DEBUGGING_INFO): New macro.
* config/alpha/vms.h (VMS_DEBUGGING_INFO): New macro.
	(PREFERRED_DEBUGGING_TYPE): Define as VMS_AND_DWARF2_DEBUG.
	(ASM_SPEC): Don't redefine.
	(OPTIMIZATION_OPTIONS, OVERRIDE_OPTIONS, LINK_SPEC): Define.
	* config/alpha/t-vms (EXTRA_PARTS): Use; add rule for vms-dwarf2.asm.
	* config/alpha/vms-dwarf2.asm: New file.
	* Makefile.in (OBJS): Add vmsdbgout.c and its rule.
	* c-lex.c (init_c_lex): Test for VMS_AND_DWARF2_DEBUG.
	* debug.h (gcc_debug_hooks): Add vmsdbg_debug_hooks.
	(vmsdbgout_after_prologue): New declaration.
	* defaults.h (VMS_DEBUGGING_INFO): Add to PREFERRED_DEBUGGING_TYPE.
	* dwarf2.h (dwarf_attribute): New DW_AT_VMS_rtnbeg_pd_address.
	* dwarf2out.c (dwarf2out_do_frame): Test for VMS_AND_DWARF2_DEBUG.
	(dwarf2out_frame_finish): Test for VMS_AND_DWARF2_DEBUG.
	(dwarf_attr_name): Use DW_AT_VMS_rtnbeg_pd_address.
	(add_name_and_src_coords_attributes): Test VMS_DEBUGGING_INFO
	* final.c (final_start_function): Test for VMS_AND_DWARF2_DEBUG.
	Test VMS_DEBUGGING_INFO.
	(final_end_function): Test for VMS_AND_DWARF2_DEBUG.
	(final_scan_insn): Test for VMS_AND_DWARF2_DEBUG and VMS_DEBUG.
	* flags.h (debug_info_type): Add VMS_DEBUG and VMS_AND_DWARF2_DEBUG.
	* toplev.c (compile_file): Test VMS_DEBUGGING_INFO, VMS_DEBUG, and
	VMS_AND_DWARF2_DEBUG.
	(rest_of_type_compilation): Test for VMS_AND_DWARF2_DEBUG.
	(decode_g_option): Add "vms" to debug_type_names.
	(process_options): Set vmsdbg_debug_hooks if -gvms.
	(lang_independent_init): Emit line number for VMS unless -g0.
	* tree.c: (build_complex_type): Test for VMS_AND_DWARF2_DEBUG.
	* vmsdbg.h, vmsdbgout.c: New files.

From-SVN: r47532
2001-12-02 09:38:07 -05:00
Jan Hubicka
5bc72aebcb * final.c (walk_alter_subreg): Fix return value.
From-SVN: r47345
2001-11-26 13:02:16 +00:00
Alan Modra
addd7df604 final.c: (insn_lengths): Make it an int *, so that large jump tables don't overflow.
* final.c: (insn_lengths): Make it an int *, so that large jump
	tables don't overflow.

From-SVN: r47331
2001-11-26 11:16:40 +10:30
Richard Sandiford
eac50d7a73 final.c (output_addr_const): Output PC as '.' even if !flag_pic.
* final.c (output_addr_const): Output PC as '.' even if !flag_pic.
	* varasm.c (output_constructor): Use assemble_integer rather
	than ASM_OUTPUT_BYTE.

From-SVN: r47287
2001-11-23 11:21:07 +00:00
Richard Kenner
fea54805d1 final.c (alter_subreg): If simplify_subreg can't do anything, handle REG ourselves and abort for others.
* final.c (alter_subreg): If simplify_subreg can't do anything,
	handle REG ourselves and abort for others.

From-SVN: r47058
2001-11-15 09:58:19 -05:00
Jan Hubicka
49d801d3db dbxout.c (dbxout_symbol_location): Update call of alter_subreg.
* dbxout.c (dbxout_symbol_location): Update call of alter_subreg.
	* final.c (walk_alter_subreg): Take pointer; update call of alter_subreg.
	(final_scan_insn): Update call of alter_subreg.
	(cleanup_subreg_operands): Likewise.
	(alter_subreg): Rewrite using simplify_subreg.
	(output_address, output_operand): Update call of alter_subreg.
	* output.h (alter_subreg): Update prototype.
	* sdbout.c (sdbout_symbol): Update call of alter_subreg.
	* simplify-rtx.c (simplify_subreg): Copy ORIGINAL_REGNO.
	* Makefile.in (final.o): Add depdendancy on expr.h

From-SVN: r47013
2001-11-14 13:51:10 +00:00
Kaveh R. Ghazi
950a3816a7 alpha.c (unicosmk_special_name): Prototype.
* alpha.c (unicosmk_special_name): Prototype.
	(unicosmk_ssib_name): Delete unused variable.
	* alpha/unicosmk.h (common_section, ssib_section): Prototype.
	* alpha/vms.h (PREFIX): Undef before defining.
	* arm/pe.h (SUBTARGET_NAME_ENCODING_LENGTHS): Likewise.
	* i370/i370.c (mvs_hash_alias): Prototype.  Wrap with macro
	controlling usage.  Const-ify.
	(alias_number): Delete unused variable.
	* m32r/m32r.c (m32r_sched_init): Add missing argument.
	(m32r_expand_block_move): Fix uninitialized warnings.
	* mn10300/mn10300.h (REGNO_IN_RANGE_P): Fix 'unsigned >=0 is
	always true' warnings.
	* openbsd.h (TARGET_MEM_FUNCTIONS): Don't redefine.
	* sh/sh.c: Include "integrate.h".
	(output_far_jump): Fix uninitialized warning.
	* final.c (shorten_branches): Avoid automatic aggregate
	initialization.
	* integrate.c (subst_constants): Likewise.

From-SVN: r46932
2001-11-11 21:20:03 +00:00
Joseph Myers
eaec9b3d7e ChangeLog.2, [...]: Fix spelling errors.
* ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog,
	cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c,
	collect2.c, combine.c, config.in, configure, configure.in,
	conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c,
	genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c,
	reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix
	spelling errors.

From-SVN: r46928
2001-11-11 11:25:28 +00:00
Jan Hubicka
2cca7283a3 final.c (*_MAX_SKIP): Use *_max_skip variables.
* final.c (*_MAX_SKIP): Use *_max_skip variables.
	* flags.h (align_loops_max_skip, align_jumps_max_skip,
	align_labels_max_skip): New global variables.
	* toplev.c (align_loops_max_skip, align_jumps_max_skip,
	align_labels_max_skip): New global variables.
	(toplev_main): Set new variables.
	* i386.c (override_options): Set max_skip values.

From-SVN: r46919
2001-11-11 00:35:31 +00:00
Geoffrey Keating
2f0b7af698 tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
* doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
	* final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF.
	* config/stormy16/stormy16.c (xstormy16_print_operand): For '%C',
	don't print an @fptr for labels either.
	(xstormy16_output_addr_vec): Don't print @fptr here.
	* config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro.

From-SVN: r46918
2001-11-10 21:44:53 +00:00
Kaveh R. Ghazi
40cdfca60c dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with ATTRIBUTE_UNUSED.
* dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
	ATTRIBUTE_UNUSED.
	* final.c (final_scan_insn): Add brackets around body of if-stmt.
	* gcc.c (convert_filename): Add static prototype.  Const-ify.
	Wrap variable in macros controlling its use.
	* output.h (sdata_section): Add prototype.

From-SVN: r46757
2001-11-04 02:26:55 +00:00
Richard Kenner
1285011e67 emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a constant expression.
* emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
	constant expression.
	(set_mem_decl): New function.
	* expr.h (set_mem_decl): New declaration.
	* final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
	(output_asm_operand_names): Add tab.
	* reload1.c (alter_reg): Set decl of MEM from REG_DECL.

From-SVN: r46733
2001-11-03 10:50:04 -05:00
Joseph Myers
f63d1bf775 ChangeLog.0, [...]: Fix spelling errors.
* ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
	ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
	c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
	collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
	haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
	regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
	system.h, toplev.c: Fix spelling errors.

From-SVN: r46580
2001-10-28 12:42:06 +00:00
Kaveh R. Ghazi
0df6c2c74e c-format.c (maybe_read_dollar_number): Use safe-ctype macros and/or fold extra calls into fewer ones.
* c-format.c (maybe_read_dollar_number): Use safe-ctype macros
	and/or fold extra calls into fewer ones.
	* collect2.c (dump_file): Likewise.
	* cppexp.c (parse_number): Likewise.
	* cpplex.c (_cpp_lex_direct): Likewise.
	* final.c (output_asm_insn, asm_fprintf): Likewise.
	* fix-header.c (inf_scan_ident, main): Likewise.
	* fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
	Likewise.
	* fold-const.c (real_hex_to_f): Likewise.
	* gen-protos.c (parse_fn_proto): Likewise.
	* genattrtab.c (check_attr_test, check_attr_value): Likewise.
	* genrecog.c (change_state, write_action): Likewise.
	* gensupport.c (shift_output_template): Likewise.
	* local-alloc.c (requires_inout): Likewise.
	* mips-tfile.c (IS_ASM_IDENT): Likewise.
	* protoize.c (is_id_char, main): Likewise.
	* real.c (asctoeg): Likewise.
	* recog.c (asm_operand_ok): Likewise.
	* reload.c (find_reloads): Likewise.
	* scan.c (scan_identget_token): Likewise.
	* sched-vis.c (print_value): Likewise.
	* stringpool.c (ggc_alloc_string): Likewise.
	* toplev.c (read_integral_parameter, decode_g_option): Likewise.
	* tradcif.y (parse_number, yylex, parse_escape): Likewise.
	* tradcpp.c (rescan): Likewise.
	* tree.c (clean_symbol_name): Likewise.
	* varasm.c (decode_reg_name): Likewise.

	* alpha.h (ASM_OUTPUT_ASCII): Likewise.
	* darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
	* dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
	* m88k.c (output_ascii): Likewise.
	* m88k.h (OVERRIDE_OPTIONS): Likewise.
	* mcore.h (REG_CLASS_FROM_LETTER): Likewise.
	* ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
	* sh.h (REG_CLASS_FROM_LETTER): Likewise.

cp:
	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
	extra calls into fewer ones.

f:
	* bad.c (ffebad_finish): Use safe-ctype macros and/or fold extra
	calls into fewer ones.
	* implic.c (ffeimplic_lookup_): Likewise.
	* intdoc.c (dumpimp): Likewise.
	* intrin.c (ffeintrin_init_0): Likewise.
	* lex.c (ffelex_backslash_, ffelex_cfebackslash_, ffelex_hash_):
	Likewise.
	* lex.h (ffelex_is_firstnamechar): Likewise.
	* target.c (ffetarget_integerhex): Likewise.

java:
	* gjavah.c (jni_print_char, decode_signature_piece): Use
	safe-ctype macros and/or fold extra calls into fewer ones.
	* lex.c (java_read_unicode, java_lex): Likewise.
	* lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
	JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
	* mangle_name.c (append_unicode_mangled_name,
	unicode_mangling_length): Likewise.

From-SVN: r46397
2001-10-21 21:32:15 +00:00
Richard Kenner
4f9b402946 final.c (output_asm_operand_names): New fcn, from output_asm_insn.
* final.c (output_asm_operand_names): New fcn, from output_asm_insn.
	(output_asm_insn): Call it for each line output.
	Don't record an operand more than once.

From-SVN: r46377
2001-10-20 07:30:07 -04:00
Richard Kenner
c5adc06afa final.c (get_decl_from_op): New function.
* final.c (get_decl_from_op): New function.
	(output_asm_insn): Call it; write "*" when item with decl is address.

From-SVN: r46355
2001-10-19 15:22:20 -04:00
Richard Kenner
0d4903b81e emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
* emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
	(offset_address): New function.
	(free_emit_status): Free regno_decl.
	(init_emit): Pass proper number of elements to xcalloc.
	Allocate regno_decl.
	(mark_emit_status): Mark regno_decl values.
	* expr.c (highest_pow2_factor): New function.
	(expand_assigment): Use it and offset_address.
	Properly handle ptr_mode vs. Pmode in offset calculation.
	(store_constructor, expand_expr_unaligned): Likewise.
	(expand_expr, case COMPONENT_EXPR): Likewise.
	* expr.h (offset_address): New decl.
	* function.h (struct emit_status): Add regno_decl.
	(REGNO_DECL): New macro.
	* final.c (output_asm_name): Move in file and don't conditionalize
	on flag_print_asm_name.
	(output_asm_insn): Only call output_asm_name if flag_print_asm_name.
	Output names of operands, if known.
	* function.c (assign_parms): Set REGNO_DECL.
	* integrate.c (integrate_decl_tree): Likewise.
	* stmt.c (expand_decl): Likewise.
	* regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.

From-SVN: r46337
2001-10-18 17:34:14 -04:00
Jakub Jelinek
8554d9a464 final.c (output_asm_insn): Make sure assembly dialects are terminated, not nested.
* final.c (output_asm_insn): Make sure assembly dialects are
	terminated, not nested.  Output `|' and `}' characters if they
	don't appear inside assembly dialect selection.
	* config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
	rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
	rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
	strsetsi_rex_1): Add {} braces.

	* testsuite/gcc.dg/20011009-1.c: New test.

From-SVN: r46227
2001-10-12 12:51:17 +02:00
Richard Henderson
4a8d0c9c68 rtl.h (REG_VTABLE_REF): New.
* rtl.h (REG_VTABLE_REF): New.
        * rtl.c (reg_note_name): Add it.
        * combine.c (distribute_notes): Handle it.
        * final.c (final_scan_insn): Handle it.
        * tree.def (VTABLE_REF): New.
        * expr.c (expand_expr): Handle it.
        * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
        * output.h: Declare them.
cp/
        * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
        of an asm statement.
        (build_vtbl_ref_1): Split out from build_vtbl_ref.
        (build_vfn_ref): Use it to handle vtable descriptors before
        calling build_vtable_entry_ref.
        * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
testsuite/
        * g++.old-deja/g++.other/crash18.C: Add -S to options.

From-SVN: r46195
2001-10-11 11:48:42 -07:00
Stan Shebs
b36948478c alias.c: Remove uses of "register" specifier in declarations of arguments and local...
2001-10-10  Stan Shebs  <shebs@apple.com>

        * alias.c: Remove uses of "register" specifier in declarations
        of arguments and local variables.
        * c-common.c: Ditto.
        * c-convert.c: Ditto.
        * c-decl.c: Ditto.
        * c-format.c: Ditto.
        * c-semantics.c: Ditto.
        * c-typeck.c: Ditto.
        * caller-save.c: Ditto.
        * calls.c: Ditto.
        * cfg.c: Ditto.
        * cfgbuild.c: Ditto.
        * cfgrtl.c: Ditto.
        * collect2.c: Ditto.
        * combine.c: Ditto.
        * convert.c: Ditto.
        * cppexp.c: Ditto.
        * cppfiles.c: Ditto.
        * cse.c: Ditto.
        * dbxout.c: Ditto.
        * defaults.h: Ditto.
        * df.c: Ditto.
        * dwarf2out.c: Ditto.
        * dwarfout.c: Ditto.
        * emit-rtl.c: Ditto.
        * explow.c: Ditto.
        * expmed.c: Ditto.
        * expr.c: Ditto.
        * final.c: Ditto.
        * fix-header.c: Ditto.
        * floatlib.c: Ditto.
        * flow.c: Ditto.
        * fold-const.c: Ditto.
        * function.c: Ditto.
        * gcc.c: Ditto.
        * gcse.c: Ditto.
        * gen-protos.c: Ditto.
        * genattrtab.c: Ditto.
        * gencheck.c: Ditto.
        * genconfig.c: Ditto.
        * genemit.c: Ditto.
        * genextract.c: Ditto.
        * genflags.c: Ditto.
        * gengenrtl.c: Ditto.
        * genoutput.c: Ditto.
        * genpeep.c: Ditto.
        * genrecog.c: Ditto.
        * gensupport.c: Ditto.
        * global.c: Ditto.
        * gmon.c: Ditto.
        * graph.c: Ditto.
        * haifa-sched.c: Ditto.
        * hard-reg-set.h: Ditto.
        * hash.c: Ditto.
        * integrate.c: Ditto.
        * jump.c: Ditto.
        * lists.c: Ditto.
        * local-alloc.c: Ditto.
        * loop.c: Ditto.
        * mips-tdump.c: Ditto.
        * mips-tfile.c: Ditto.
        * optabs.c: Ditto.
        * prefix.c: Ditto.
        * print-rtl.c: Ditto.
        * read-rtl.c: Ditto.
        * real.c: Ditto.
        * recog.c: Ditto.
        * reg-stack.c: Ditto.
        * regclass.c: Ditto.
        * regmove.c: Ditto.
        * reload.c: Ditto.
        * reload1.c: Ditto.
        * reorg.c: Ditto.
        * resource.c: Ditto.
        * rtl.c: Ditto.
        * rtlanal.c: Ditto.
        * scan.c: Ditto.
        * sched-deps.c: Ditto.
        * sched-rgn.c: Ditto.
        * sdbout.c: Ditto.
        * simplify-rtx.c: Ditto.
        * stmt.c: Ditto.
        * stor-layout.c: Ditto.
        * toplev.c: Ditto.
        * tradcif.y: Ditto.
        * tradcpp.c: Ditto.
        * tree.c: Ditto.
        * unroll.c: Ditto.
        * varasm.c: Ditto.
        * xcoffout.c: Ditto.

From-SVN: r46173
2001-10-11 03:16:15 +00:00
Jan Hubicka
2e10660228 * final.c (final_scan_insn): Use delete_insn instead of delete_note.
From-SVN: r45823
2001-09-26 11:22:35 +00:00
Jan Hubicka
ca6c03cabd Makefile.in (cfgrtl.o): Add.
* Makefile.in (cfgrtl.o): Add.
	* basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
	free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
	free_aux_for_edge): Declare.
	* cfg.c
	(HAVE_return): Undefine.
	* basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
	free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
	free_aux_for_edge): New global functions.
	(first_delete_block): New static variable.
	(init_flow): Clear first_delete_block.
	(basic_block_for_insn, label_value_list, tail_recursion_label_list,
	 can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
	 try_redirect_by_replacing_jump, last_loop_beg_note,
	 back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
	 delete_insn, delete_insn_chain, create_basic_block_structure,
	 create_basic_block, flow_delete_block, compute_bb_for_insn,
	 free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
	 set_block_for_new_insns, split_block, merge_blocks_nomove,
	 block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
	 redirect_edge_and_branch, force_nonfallthru_and_redirect,
	 force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
	 tidy_fallthru_edges, split_edge, insert_insn_on_edge,
	 commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
	 debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
	 purge_all_dead_edges): Move to ....
	* cfgrtl.c: New file; .... Here.

	* bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
	(reroder_basic_block): Use alloc_aux_for_blocks.
	* predict.c (estimate_bb_frequencies): Likewise; use
	alloc_aux_for_edges.
	* profile.c (compute_branch_probabilities): Likewise.
	(branch_prob): Likewise.
	* reg-stack.c (reg_to_stack): Likewise.

	* emit-rtl.c (emit_insns_after): Never return NULL.

	* basic-block.h (set_block_for_new_insns): Delete.
	* cfgrtl.c (set_block_for_new_insns): Delete.

	* cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
	calls when crossjumping.

	* cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
	* unroll.c (copy_loop_body): Use delete_insn.

	* final.c (final, final_scan_insn): Use delete_insn/delete_note.
	* function.c (fixup_var_refs_insn, fixup_var_refs_1,
	keep_stack_depressed): Likewise.
	* gcse.c (cprop_cc0_jump): Likewise.
	* local-alloc.c (update_equiv_regs): Likewise.
	* loop.c (scan_loop, loop_delete_insns): Likewise.
	* regmove.c (try_auto_increment, fixup_match_1): Likewise.
	* reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
	delete_output_reload, delete_address_reloads_1,
	reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
	Likewise.
	* sibcall.c (replace_call_placeholder): Likewise.
	* cse.c (cse_insn): Likewise.

From-SVN: r45807
2001-09-25 15:26:55 +00:00
Richard Henderson
36d7136e99 final.c (final_scan_insn): Don't enter APP_ON mode for empty asm strings.
* final.c (final_scan_insn): Don't enter APP_ON mode for
        empty asm strings.

From-SVN: r45199
2001-08-27 10:29:57 -07:00
Andreas Jaeger
7a75edb707 emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
* emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
	* errors.c: Likewise.
	* final.c: Likewise.
	* dwarf2asm.c: Likewise.
	* doprint.c (checkit): Likewise.
	* diagnostic.c: Likewise.
	* collect2.c: Likewise.
	* calls.c: Likewise.
	* c-semantics.c (build_stmt): Likewise.
	* c-format.c (status_warning): Likewise.
	* c-errors.c (pedwarn_c99): Likewise.
	* builtins.c (validate_arglist): Likewise.
	* config/pj/pj.c (pj_printf): Likewise.
	* fix-header.c: Likewise.
	* gcc.c: Likewise.
	* gcov.c (fnotice): Likewise.
	* gensupport.c (message_with_line): Likewise.
	* mips-tfile.c: Likewise.
	* protoize.c (notice): Likewise.
	* read-rtl.c (fatal_with_file_and_line): Likewise.
	* rtl-error.c: Likewise.
	* tradcpp.c: Likewise.
	* tree.c: Likewise.
	* cp/tree.c (build_min_nt): Likewise.
	(build_min): Likewise.
	* cp/lex.c: Likewise.
	* cp/errfn.c: Likewise.
	* cp/rtti.c (create_pseudo_type_info): Likewise.

From-SVN: r45185
2001-08-27 08:48:43 +02:00
Matt Kraai
3e4eece35f * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
From-SVN: r45110
2001-08-22 09:29:08 -07:00
Lars Brinkhoff
1322177dbd Makefile.in, [...]: replace "GNU CC" with "GCC".
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
	bitmap.h, builtin-types.def, builtins.c, builtins.def,
	c-aux-info.c, c-common.c, c-common.def, c-common.h,
	c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
	c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
	c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
	caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
	conditions.h, config.gcc, configure.frag, configure.in,
	conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
	cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
	dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
	doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
	dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
	emit-rtl.c, errors.c, errors.h, except.c, except.h,
	exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
	fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
	function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
	gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
	gencheck.c, gencodes.c, genconfig.c, genemit.c,
	genextract.c, genflags.c, gengenrtl.c, genmultilib,
	genopinit.c, genoutput.c, genpeep.c, genrecog.c,
	gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
	ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
	graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
	gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
	gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
	hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
	integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
	libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
	machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
	mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
	mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
	params.h, predict.c, predict.def, predict.h, prefix.c,
	prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
	read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
	regclass.c, regmove.c, regrename.c, regs.h, reload.c,
	reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
	rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
	sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
	sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
	ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
	stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
	tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
	tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
	unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
	unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
	xcoffout.h: replace "GNU CC" with "GCC".

From-SVN: r45105
2001-08-22 14:35:51 +00:00
Richard Henderson
340f7e7cdf final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
* final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
        (final_scan_insn): Consider jump tables data even if we have no
        independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
        ADDR_VEC_ALIGN.
        * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
        (ASM_OUTPUT_CASE_END): Remove.
        (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
        * config/ia64/ia64.md (tablejump): Decode pc-relative references.
        * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.

From-SVN: r45103
2001-08-22 01:31:44 -07:00
Richard Henderson
ba7129555a * final.c (compute_alignments): Fix typo.
From-SVN: r45100
2001-08-22 01:04:15 -07:00
Richard Henderson
ca8264b4b3 * final.c (end_final): Fix typo last change.
From-SVN: r45047
2001-08-20 00:27:32 -07:00
Jan Hubicka
247a370b4f final.c (compute_alignments): New function.
* final.c (compute_alignments): New function.
	(init_insn_lengths): Do not care label_align.
	(LABEL_ALIGN_AFTER_BARRIER): Default to 1.
	(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
	(JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
	(shorted_branches): Realloc label_align array; do
	not call init_insn_lengths; Do not care about loop alignments.
	* output.h (compute_alignments): Declare.
	* toplev.c (rest_of_compilation): Call compute_alignments.
	* tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.

	* predict.c (block_info_def): Add npredecesors, remove nvisited;
	change visited to tovisit.
	(propagate_freq): Use faster traversing algorithm.
	(estimate_loops_at_level, estimate_bb_frequencies): Change visited
	to tovisit; reverse meaning.

	* predict.c (struct block_info_def): Remove nvisited.
	(propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
	(estimate_bb_frequencies): Call mark_dfs_back_edges.

From-SVN: r45042
2001-08-19 23:46:10 +00:00
Richard Henderson
c8af3574e3 defaults.h (UNALIGNED_SHORT_ASM_OP, [...]): Move from ...
* defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
	UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
	* dwarf2asm.c: ... here.
	* dwarfout.c: Remove them.

	* varasm.c (assemble_integer): Add align parameter.
	(assemble_real, output_constant, output_constructor): Likewise.
	* output.h: Update decls.
	* dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
	config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
	config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
	config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
	Update all callers.

	* final.c (end_final): Abort profile block generation if we
	havn't layed it out properly.
	* output.h (assemble_eh_integer): Remove stale decl.
	* varasm.c (assemble_zeros): Tidy; use assemble_integer.
	(min_align): New.
	(assemble_integer): Handle unaligned data.
	(assemble_real): Abort on unaligned data.
	(output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
	anything useful.
	(default_dtor_section_asm_out_destructor): Use assemble_align.
	(default_named_section_asm_out_constructor): Likewise.
	(default_ctor_section_asm_out_constructor): Likewise.
	* config/darwin.c (machopic_asm_out_constructor): Likewise.
	(machopic_asm_out_destructor): Likewise.
	* config/nextstep.c (nextstep_asm_out_constructor): Likewise.
	(nextstep_asm_out_destructor): Likewise.
	* config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
	(vms_asm_out_destructor): Likewise.

        * java/class.c (emit_register_classes): Add align parameter to
        call to assemble_integer.

From-SVN: r44992
2001-08-17 17:53:20 -07:00
Jan Hubicka
3446405d5e final.c: Undo my previous accidental checkin.
* final.c: Undo my previous accidental checkin.
	* output.h: Likewise.
	* tm.texi: Likewise.

From-SVN: r44960
2001-08-17 13:45:59 +00:00
Zack Weinberg
d9b6874b0c final.c (shorten_branches): Clear the end of the label_align array only if we made it larger.
* final.c (shorten_branches): Clear the end of the label_align
	array only if we made it larger.  Break up messy expressions
	for clarity.

	* diagnostic.c (internal_error): Check for error recursion
	before doing ICE suppression.

	* timevar.c: Timing variables now count in milliseconds.
	(init_timevar): Set up ticks_to_msec and clocks_to_msec here.
	(get_time): Not here.
	(timevar_print): Don't print any timer whose user, cpu, and
	wall times are all zero as displayed.
	* timevar.h: Update comment aboout units.  Make timevar
	counters unsigned.

From-SVN: r44948
2001-08-17 01:27:49 +00:00
Jan Hubicka
25e22dc0cb Thu Aug 16 17:39:45 CEST 2001 Jan Hubicka <jh@suse.cz>
* function.c (put_var_into_stack): Temporarily clear DECL_RTL.
	(assign_params): Avoid setting DECL_RTL to unfinished RTX.
	(expand_function_start): Likewise.
	* stmt.c (expand_decl): Likewise.
	* varasm.c (make_decl_rtx): Likewise.

From-SVN: r44940
2001-08-16 15:41:05 +00:00
Jan van Male
b9f2270425 emit-rtl.c (adjust_address, [...]): Cast offset to unsigned HOST_WIDE_INT to avoid warning.
2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>

        * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
        unsigned HOST_WIDE_INT to avoid warning.
        * final.c (final): Cast INSN_UID to unsigned to avoid warning.
        * flow.c (set_block_for_new_insns): Likewise.

From-SVN: r44724
2001-08-08 22:32:31 +02:00
Graham Stott
674fc07da0 final.c (shorten_branches): Update the INSN_ADDRESSES of insns within fixed length SEQUENCE.
* final.c (shorten_branches): Update the INSN_ADDRESSES of insns
	within fixed length SEQUENCE.

From-SVN: r44712
2001-08-08 08:22:05 +00:00
Jan Hubicka
570a98eb7c calls.c (expand_call): Do not emit INSN_SETJMP note.
* calls.c (expand_call): Do not emit INSN_SETJMP note.
	(emit_library_call_value_1): Likewise.
	(emit_call_1): Emit REG_SETJMP note.
	* cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
	of INSN_SETJMP
	* cselib.c (cselib_process_insn): Likewise.
	* flow.c (propagate_block): Likewise.
	* loop.c (find_and_verify_loops): Likewise.
	* reload.c (find_equiv_regs): Likewise.
	* reload1.c (reload): Likewise.
	* resource.c (mark_referenced_resources,
	mark_set_resources): Likewise.
	* sched-deps (sched_analyze_insn, sched_analyze): Likewise.
	* final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
	* haifa-sched.c (unlink_other_notes): Likewise.
	(reemit_notes): Likewise.
	* sched-ebb.c (sched_ebb): Likewise.
	* sched-rgc.c (sched_region): Likewise.
	* rtl.c (note_insn_name): Likewise.
	(reg_note_name): Add REG_SETJMP
	* rtl.h (reg_note): Add REG_SETJMP.
	(insn_note): Remove NOTE_INSN_SETJMP.

	* profile.c (branch_prob): Add fake edges for setjmp.

From-SVN: r44700
2001-08-07 20:24:08 +00:00
Richard Henderson
a20612aa8b dwarf2out.c (dw_val_class_offset): New.
* dwarf2out.c (dw_val_class_offset): New.
	(struct dw_ranges_struct, dw_ranges_ref): New.
	(ranges_table, ranges_table_allocated): New.
	(ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
	(add_AT_offset, add_ranges, output_ranges): New.
	(print_die, output_die): Handle dw_val_class_offset.
	(attr_checksum, size_of_die, value_format): Likewise.
	(gen_lexical_block_die): Handle non-contiguous blocks.
	(gen_block_die): Likewise.
	(dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
	if needed.  Dump the ranges table.
	* final.c (final_start_function): Remove unnecessary notes and
	rebuild the block tree before numbering the blocks.
	* function.c (reorder_blocks_0): Walk the existing block tree
	to unmark all blocks.
	(reorder_blocks_1): Create block fragments when duplicate block
	notes are seen.
	(reorder_fix_fragments): New.
	(reorder_blocks): Call it.
	* tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.

From-SVN: r44444
2001-07-28 19:10:42 -07:00