gcc/gcc ChangeLog.RA Makefile.in cse.c default ...

matz@gcc.gnu.org matz@gcc.gnu.org
Wed Jul 2 15:07:00 GMT 2003


CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	new-regalloc-branch
Changes by:	matz@gcc.gnu.org	2003-07-02 15:07:53

Modified files:
	gcc            : ChangeLog.RA Makefile.in cse.c defaults.h df.c 
	                 ra-build.c ra-colorize.c ra-debug.c 
	                 ra-rewrite.c ra.c ra.h 

Log message:
	http://gcc.gnu.org/ml/gcc-patches/2003-07/msg00200.html
	* Makefile.in (cse.o): Depend on df.h.
	* cse.c (insn_live_p): Trapping insns are not necessarily live.
	* defaults.h (SPILL_REGS): Define.
	* df.c (df_insn_refs_record): Don't collect call-clobbered  hardregs.
	* ra-build.c (insn_clobbers_mem_1, insn_clobbers_mem): New.
	(copy_insn_p): Declare.
	(uid_memset): New.
	(union_web_part_roots): Sum num_calls members, union crosses_memset.
	(live_out_1): Increment num_calls, handle call clobbered regs,
	set crosses_memset.
	(update_regnos_mentioned): Use insn_clobbers_mem to initialize
	uid_memset.
	(livethrough_conflicts_bb): Handle crosses_memset and num_calls.
	(record_conflict): Delete #if 0 code.
	(compare_and_free_webs): Check num_calls member.
	(parts_to_webs_1): Initialize num_calls and crosses_memset member.
	(check_conflict_numbers): #if 0 it.
	(conflicts_between_webs): Silence warning.  Add commented code
	to create conflicts of live-over-call webs with call-clobbered
	regs, but comment it.
	(detect_remat_webs): Also remat mem expression for webs not live
	over memory clobbers.  Accept REG_EQUIV expression too.
	(select_regclass): Delete call-clobbered regs from usable_regs.
	Restrict usable regs to SPILL_REGS for spill temps.
	(ra_build_realloc): Allocate uid_memset.
	(ra_build_free_all): Free it.
	* ra-colorize.c (get_simple_web): New, but #if 0 it.
	(simplify): Call it, but commented out.
	(colorize_one_web): Call-crossing webs first try non call-used regs.
	* ra-debug.c (dump_igraph): Dump num_calls and crosses_memset.
	* ra-rewrite.c (purge_reg_equiv_notes): New.
	(mark_refs_for_checking): Clear num_calls and crosses_memset.
	(webs_changed_layout): New.
	(detect_web_parts_to_rebuild): Webs mentioned in webs_changed_layout
	need to be rebuild to.  Clear num_calls and crosses_memset.
	(try_delete_useless_def): New.
	(delete_useless_defs): Call it.
	(detect_non_changed_webs): Set caller_save_needed.
	(need_rebuild): New.
	(subst_to_stack_p): Skip dead spilltemps.
	(actual_spill): Return an int.  Allocate/free webs_changed_layout.
	Call need_rebuild.
	(allocate_stack_slots): New.
	(emit_colors): Call allocate_stack_slots if not BYTES_BIG_ENDIAN.
	Possibly set caller_save_needed.  Call purge_reg_equiv_notes.
	(get_aliased_equivalent, create_flow_barriers): New.
	* ra.c (cleanup_insn_stream): New.
	(one_pass): Change call to actual_spill.
	(split_critical_edges): New.
	(reg_alloc): Call cleanup_insn_stream.  Call split_critical_edges,
	but commented.  Delete commented code.  Call
	count_or_remove_death_notes only in the first pass.  Call
	create_flow_barriers.
	* ra.h (struct web_part, num_calls, crosses_memset): New members.
	(struct web, num_calls, crosses_memset): Ditto.
	(actual_spill): Change prototype.
	(create_flow_barriers): Declare.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.RA.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.104&r2=1.1.2.105
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.592.2.16&r2=1.592.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cse.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.173.2.8&r2=1.173.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/defaults.h.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.29.2.7&r2=1.29.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/df.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.21&r2=1.1.2.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ra-build.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.16&r2=1.1.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ra-colorize.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.14&r2=1.1.2.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ra-debug.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.8&r2=1.1.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ra-rewrite.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.14&r2=1.1.2.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ra.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.68&r2=1.1.2.69
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ra.h.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.9&r2=1.1.2.10



More information about the Gcc-cvs mailing list