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]

r185884 - in /branches/lra/gcc: ChangeLog Makef...


Author: vmakarov
Date: Tue Mar 27 16:27:37 2012
New Revision: 185884

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185884
Log:
2012-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	* common.opt (flra-reg-spill): New option.

	* doc/tm.texi (TARGET_SPILL_CLASS, TARGET_SPILL_CLASS_MODE): New
	hooks.

	* target.def (spill_class, spill_class_mode): New hooks.

	* target.h: Include tm.h.

	* lra-int.h (lra_reg_spill_p): New external.

	* lra.c (lra_reg_spill_p): New global var.
	(setup_reg_spill_flag): New function.
	(lra): Call setup_reg_spill_flag.  Use lra_reg_spill_p as an
	argument for lra_create_live_ranges before spill sub-pass.

	* lra-spills.c: Include ira.h.
	(spill_hard_reg): New array.
	(struct slot): Add new memebr hard_regno.
	(assign_slot): Rename to assign_mem_slot.
	(assign_spill_hard_regs): New function.
	(add_pseudo_to_slot): Ditto.
	(assign_stack_slot_num_and_sort_pseudos): Rewrite using
	add_pseudo_to_slot.
	(remove_pseudos): Use spill_hard_reg.
	(lra_spill): Allocate, initialize, and free spill_hard_reg.
	Sort pseudo_regnos and call assign_spill_hard_regs.

	* lra-assign.c (assign_hard_regno): Use the biggest mode instead
	of the pseudo mode.

	* Makefile.in (lra-spills.c): Add dependence on ira.h.

	* config/i386/i386.h (enum ix86_tune_indices): Add
	X86_TUNE_GENERAL_REGS_SSE_SPILL.
	(TARGET_GENERAL_REGS_SSE_SPILL): New macro.

	* config/i386/i386.c (initial_ix86_tune_features): Add entry for
	X86_TUNE_GENERAL_REGS_SSE_SPILL.
	(ix86_spill_class): New function.
	(ix86_spill_class_mode): Ditto.
	(TARGET_SPILL_CLASS, TARGET_SPILL_CLASS_MODE): Define macros.


Modified:
    branches/lra/gcc/ChangeLog
    branches/lra/gcc/Makefile.in
    branches/lra/gcc/common.opt
    branches/lra/gcc/config/i386/i386.c
    branches/lra/gcc/config/i386/i386.h
    branches/lra/gcc/doc/tm.texi
    branches/lra/gcc/lra-assigns.c
    branches/lra/gcc/lra-int.h
    branches/lra/gcc/lra-spills.c
    branches/lra/gcc/lra.c
    branches/lra/gcc/target.def
    branches/lra/gcc/target.h


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