This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]