This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
gcc/gcc ChangeLog.RA ra-build.c ra.c ra-colori ...
- From: denisc at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: 5 Mar 2004 06:05:32 -0000
- Subject: gcc/gcc ChangeLog.RA ra-build.c ra.c ra-colori ...
CVSROOT: /cvs/gcc
Module name: gcc
Branch: new-regalloc-branch
Changes by: denisc@gcc.gnu.org 2004-03-05 06:05:31
Modified files:
gcc : ChangeLog.RA ra-build.c ra.c ra-colorize.c ra.h
pre-reload.c pre-reload.h
Log message:
* ra-build.c (flags.h): Include new file.
(long_blocks_for_mode) New array. The number of
non-overlapping blocks of hardregs required for MODE.
(select_regclass): Use web_class_costs for calculation of
reg_class costs for each web. Use web_class_insn_alt to select
right insn alternative for each insn. Use we_class_spill to
generate spill code for refs with wrong reg_class.
(class_ok_for_mode): Removed. Better to use long_blocks_for_mode.
(web_class): Removed.
(init_long_blocks_for_classes): New function. Initialize
long_blocks_for_mode.
(calc_pref_class): New function. Calculate preferred class for web.
(web_class_costs): New function. Calculate reg_class costs for web.
(web_class_insn_alt): New function. Select insn alternatives
according to costs of register classes.
(web_class_spill): New function. Add spill code for refs with
wrong reg_class.
* ra-colorize.c (colorize_one_web): Add code to disable
spilling of dead webs.
* ra.c (one_pass): Remember last max uid of insn and use it
after spilling introduced by web_class...
* ra.h (costs): New structure. Records the cost of using a
hard register of each class.
(init_long_blocks_for_classes): Declare prototype.
* pre-reload.h (alt_link): New structure. Used for list of correct
alternatives.
(struct ra_ref): Use alt_link.
* pre-reload.c (scan_addr_create_ref): Initialize alt_link field.
(scan_alternative): Right hanlde '*' and '#' constraint modifiers.
(collect_insn_info): Record list of correct alternatives.
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.128&r2=1.1.2.129
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.26&r2=1.1.2.27
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.76&r2=1.1.2.77
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.19&r2=1.1.2.20
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.13&r2=1.1.2.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/pre-reload.c.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.22&r2=1.1.2.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/pre-reload.h.diff?cvsroot=gcc&only_with_tag=new-regalloc-branch&r1=1.1.2.8&r2=1.1.2.9