Commit Graph

22 Commits

Author SHA1 Message Date
Diego Novillo
14592a41e8 rtl.texi (mem): Add documentation for alias-set argument to RTX `mem'.
* rtl.texi (mem): Add documentation for alias-set argument
	to RTX `mem'.

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

From-SVN: r30382
1999-11-03 16:55:51 -05:00
Bernd Schmidt
4404ce281d Remove prev/next/up pointers in node definitions
From-SVN: r30239
1999-10-28 10:36:01 +00:00
Andreas Schwab
305f30038b rtl.texi: Fix typo.
Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>

	* rtl.texi: Fix typo.

From-SVN: r28686
1999-08-12 08:24:56 +00:00
Zack Weinberg
b89d20aa3c rtl.texi: Document the rtl classes and their relation to formats.
1999-04-26 09:47 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
	* rtl.texi: Document the rtl classes and their relation to
	formats.

From-SVN: r26641
1999-04-26 06:48:57 +00:00
Andrew Macleod
2b4b3e5f21 rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
Thu Mar 25 14:04:54 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
	* rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
	* rtl.h (struct rtx_def): Update comment for frame_related field.
	(set_unique_reg_note): Declare prototype.
	* dwarf2out.c (dwarf2out_frame_debug_expr): Split out from
	'dwarf2out_frame_debug' to handle only expressions, and process
	component parts of a PARALLEL expression.
	(dwarf2out_frame_debug): Process insns only, and call
	new function 'dwarf2out_frame_debug_expr' for patterns.
	* emit-rtl.c (set_unique_reg_note): New function to add a reg note,
	but if there is an existingone, deletes it first.
	* expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note.
	* optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note.
	(emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note.
	(expand_fix):  Use set_unique_reg_note.

From-SVN: r25976
1999-03-25 12:04:19 +00:00
Mark Mitchell
747215f1fe Update copyrights
From-SVN: r24765
1999-01-19 12:08:36 +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
Nick Clifton
80599fd90c Delete REG_RETVAL and REG_LIBCALL notes after completeing reload
From-SVN: r24310
1998-12-14 14:13:26 +00:00
Michael Hayes
b18cfc2861 rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for addressing modes with side effects.
* rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
  	addressing modes with side effects.  These are currently
  	placeholders for the C4x target.

From-SVN: r23228
1998-10-22 16:11:16 +00:00
Bernd Schmidt
7609e7209a reload.h (compute_use_by_pseudos): Declare.
* reload.h (compute_use_by_pseudos): Declare.
	* reload1.c (spilled_pseudos, insns_need_reload): New variables.
	(something_needs_reloads): Delete variable.
	(finish_spills): New function.
	(compute_use_by_pseudos): New function.
	(delete_caller_save_insns): Lose argument FIRST.  All callers changed.
	Use the reload_insn_chain instead of walking the rtl directly.
	(reload): Allocate and free spilled_pseudos.
	Ensure that all calls of spill_hard_reg are followed by a call to
	finish_spills.
	Use the insns_need_reload list instead of something_needs_reloads
	to find out if reload_as_needed must be called.
	Clear unused_insn_chains at the end.
	(calculate_needs_all_insns): Lose FIRST parameter.  All callers
	changed.
	Delete code to keep track of current basic block.
	Walk reload_insn_chain instead of the rtl structure.  Build the
	insns_need_reload chain.
	Remember which insns need reloading/elimination by setting the
	appropriate fields in struct insn_chain, not by putting modes on the
	insn.
	(calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
	arg INSN.  All callers changed.
	Delete declaration of struct needs.
	Don't set something_needs_reloads.
	Record insn needs in the CHAIN argument.
	(spill_hard_reg): Record the affected pseudos in spilled_pseudos.
	(reload_as_needed): Lose FIRST arg.  All callers changed.
	Walk the reload_insn_chain instead of the rtx structure.
	Delete code to keep track of current basic block.
	Rename one of the NEXT variables to OLD_NEXT.
	(allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
	callers changed.
	(choose_reload_regs): Likewise.
	(emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
	callers changed.
	* caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
	instead of (MOVE_MAX / UNITS_PER_WORD) computation.
	(hard_regs_live, hard_regs_need_restore): Delete variables.
	(n_regs_saved): Now static.
	(referenced_regs, this_insn_sets): New variables.
	(setup_save_areas): Restructure the code a bit.
	(restore_referenced_regs): Delete function.
	(mark_referenced_regs): New function, similar to the old
	restore_referenced_regs, but mark registers in referenced_regs.
	(clear_reg_live): Delete function.
	(mark_set_regs): Renamed from set_reg_live.  All callers changed.
	Only mark registers in this_insn_sets.
	(save_call_clobbered_regs): Rework this function to walk the
	reload_insn_chain instead of using the list of instructions directly.
	Delete code to keep track of register lives, compute live regs on the
	fly from information in the chain.
	Instead of calling restore_referenced_regs, use mark_referenced_regs,
	then walk the set it computes and call insert_restore as appropriate.
	(insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
	callers changed.
	Restructure the code a bit.  Test hard_regs_saved instead of
	hard_regs_need_restore.
	(insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
	args.  All callers changed.
	Restructure the code a bit.  Use TO_SAVE to determine which regs to
	save instead of more complicated test.
	(insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
	callers changed.
	Create a new insn_chain structure for the new insn and place it
	into the chain.
	* rtl.texi: Update documentation to reflect that reload no longer
	puts modes on the insns.

From-SVN: r23074
1998-10-13 19:14:42 -06:00
Richard Henderson
07ebc9309d rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
* rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
        * rtl.c (reg_note_name): Likewise.
        * rtl.texi (REG_NOTES): Likewise.
        * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
        without an offset.

From-SVN: r22273
1998-09-05 14:57:56 -07:00
Richard Henderson
9953e37587 Document TImode out of 2nd Haifa pass.
From-SVN: r22128
1998-08-31 03:02:34 -07:00
Mark Mitchell
70198e3dd0 * rtl.texi: Don't say that RTX_INTEGRATED_P is unused.
From-SVN: r20830
1998-06-30 10:54:13 +00: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
J"orn Rennecke
b60a841635 reload.c (find_reloads): Emit USEs to mark where a pseudo is reloaced with the MEM of its stack slot.
* reload.c (find_reloads): Emit USEs to mark where a pseudo
	is reloaced with the MEM of its stack slot.
	* reload1.c (cannot_omit_stores): Delete.
	(reload): Don't initialize it.
	Don't apply avoid_return_reg logic to USEs.
	When done, remove USEs that have a REG_EQUAL note on them.
	(emit_reload_insns): Handle case where we have inherited a MEM.
	(delete_output_reload): Don't use cannot_omit_stores.

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

From-SVN: r18433
1998-03-06 14:54:07 +00:00
Joern Rennecke
a6765b81fa Added some words on FLOAT_WORDS_BIG_ENDIAN.
From-SVN: r16932
1997-12-03 23:37:38 +00:00
Jeff Law
e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Jeff Law
6714c1ae69 REG_BR_PRED docs.
From-SVN: r15860
1997-10-07 11:15:27 -06:00
Jeff Law
89045fd128 Initial revision
From-SVN: r14676
1997-08-06 13:57:47 -06:00