egcs/gcc ChangeLog.RA ra.c df.c df.h
matz@gcc.gnu.org
matz@gcc.gnu.org
Wed Jun 20 01:54:00 GMT 2001
CVSROOT: /cvs/gcc
Module name: egcs
Branch: new-regalloc-branch
Changes by: matz@gcc.gnu.org 2001-06-20 01:54:12
Modified files:
gcc : ChangeLog.RA ra.c df.c df.h
Log message:
I nearly forgot to commit:
2001-06-20 Michael Matz <matzmich@cs.tu-berlin.de>
subreg handling
* df.c (df_uses_record): case SET, GET_CODE(dst)==SUBREG: don't
add a use for the def, if it's wider than word, and the subreg isn't
paradoxical.
* df.h (DF_REF_REAL_LOC): New.
(DF_REF_LOC): Define with help from above.
* ra.c : Don't define OLD_DF_INTERFACE, #include "tm_p.h".
(struct tagged_conflict): New.
(struct web_part): Delete conflicts, add sub_conflicts (of the
above type). Adjust users of that field.
(struct web): Add has_sub_conflicts, artificial.
(struct conflict_link): New.
(union_web_part_roots): Use them.
(rtx_to_bits, find_sub_conflicts, get_sub_conflicts,
undef_to_bitmap): New.
(regs_overlap_p): Rename to...
(defuse_overlap_p): this.
(live_out_1): Use them.
(find_subweb_2, add_subweb_2, find_web_for_subweb,
regs_overlap_p): New.
(add_conflict_edge): Breakout from ...
(record_conflict): here.
(sup_igraph): New, (de)allocate where also igraph is (de)allocated.
(struct visit_trace, num_subwebs, SUBWEB_P, BYTE_BEGIN,
BYTE_LENGTH): New.
(add_conflict_edge): Add a fake conflict (->s==NULL).
Set sup_igraph bit.
(parts_to_webs): Create needed artificial webs.
(conflicts_between_webs): Create conflict lists out of sub_conflicts.
(remember_web_was_spilled, simplify, ok, conservative, combine,
colorize_one_web): Deal with fake conflicts.
(coalesce): Use sup_igraph instead igraph to prevent coalescing.
(detect_spill_temps, build_worklists, emit_colors): Only deal with
full webs.
(colorize_one_web): Also try to spill smaller already colored
neighbors in case we happen to spill a spill-temp.
(rewrite_program): Only load or store the part which really is needed
by the insn (i.e. subreg).
(vim:): modeline adjusted ;-)
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/ChangeLog.RA.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/egcs/gcc/ra.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.7&r2=1.1.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/df.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.5&r2=1.1.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/df.h.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.4&r2=1.1.2.5
More information about the Gcc-cvs
mailing list