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