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]

r119881 - in /branches/ira/gcc: ChangeLog Makef...


Author: vmakarov
Date: Fri Dec 15 14:22:48 2006
New Revision: 119881

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119881
Log:
2006-12-15  Vladimir Makarov  <vmakarov@redhat.com>

        * ira.h, ira-int.h, ira.c, ira-build.c, ira-costs.c
	ira-conflicts.c, ira-color.c, ira-emit.c: New files.

	* flags.h (ira_algorithm): New enumeration.
	(flag_ira_algorithm): New external variable declaration.

	* tree-pass.h (pass_ira): New external variable declaration.

	* toplev.c (ira.h): New include.
	(flag_ira_algorithm): New global variable.
	(backend_init): Call init_ira_once.

	* toplev.h (flag_ira, flag_ira_biased_coloring): New external
	variable declarations.

	* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
	may_move_out_cost): New external variable declarations.
	
	* caller-save.c (no_caller_save_reg_set): New global variable.
	(init_caller_save): Set up no_caller_save_reg_set.
	
	* global.c (eliminable_regset): Make it external.
	(gate_handle_global_alloc): New function.
	(pass_global_alloc): Add the gate function.

	* opts.c (decode_options):  Print the warning for -fira.
	(common_handle_option): Process -fira-algorithm option.

	* timevar.def (TV_IRA): New pass.

	* hard-reg-set.h (no_caller_save_reg_set): New external variable
	declaration.

	* regmove.c (regmove_optimize): Don't do replacement of output
	operands by input operands.
        (rest_of_handle_regmove): Don't do CFG cleanup for IRA.

	* local-alloc.c (update_equiv_regs): Make it external.  Return
	true if jump label rebuilding should be done.
	(gate_handle_local_alloc): New function.
	(pass_local_alloc): Add the gate function.

	* alias.c (stack_addr_p): New function.
	(nonoverlapping_memrefs_p): Add code for IRA.

	* common.opt (fira, fira-algorithm, fira-biased-coloring): New
	options.

	* regclass.c (contains_reg_of_mode, move_cost, may_move_in_cost,
	may_move_out_cost): Make the variables external.
	
	* rtl.h (eliminable_regset): New external variable declaration.
	(update_equiv_regs): New external function definition.

	* Makefile.in (IRA_INT_H): New definition.
	(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
	ira-conflicts.o, ira-color.o, and ira-emit.o.
	(reload1.o, toplev.o): Add dependence on ira.h.
	(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
	ira-emit.o): New entries.

	* passes.c (pass_ira): New pass.

	* reload1.c (alter_reg): Add a new parameter.
	(pseudo_reg_compare): New function.
	(reload): Sort pseudos for IRA.  Call alter_reg with the
	additional parameter.
	(count_spilled_pseudo): New variable freq.  Use it.
	(alter_reg): Add code for IRA.
	(eliminate_regs_1, finish_spills, emit_input_reload_insns,
	delete_output_reload): Use additional parameter for alter_reg.
	(finish_spills, emit_input_reload_insns, delete_output_reload):
	Call mark_allocation_change.
	(finish_spills): Call retry_ira_color.
	
	* doc/invoke.texi: Describe new options -fira,
	-fira-biased-coloring, and -fira-algorithm.
	
	* doc/passes.texi: Decribe IRA.

	* doc/tm.texi:  Decribe macro IRA_COVER_CLASSES.
	
	* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.

	* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.

	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.

	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
	
	Richard Henderson  <rth@redhat.com>

	* tree-pass.h (pass_lower_subreg): New external definition.
	* toplev.h (flag_lower_subreg): New external definition.
	* rtl.def (CONCATN): New rtl expression.
	* dwarf2out.c (concatn_loc_descriptor): New function.
	(loc_descriptor): Process CONCATN.
	* timevar.def (TV_LOWER_SUBREG): New definition.
	* emit-rtl.c (gen_reg_rtx_offset): New function.
	(gen_lowpart_common): Process CONCATN.
	* simplify-rtx.c (simplify_subreg): Process CONCATN.
	* common.opt (flower-subreg): New options.
	* rtl.h (gen_reg_rtx_offset): New external definition.
	* Makefile.in (OBJS-common): Add lower-subreg.o.
	(lower-subreg.o): New entry.
	* passes.c (pass_lower_subreg): Add new pass.
	* lower-subreg.c: New file.


Added:
    branches/ira/gcc/ira-build.c
    branches/ira/gcc/ira-color.c
    branches/ira/gcc/ira-conflicts.c
    branches/ira/gcc/ira-costs.c
    branches/ira/gcc/ira-emit.c
    branches/ira/gcc/ira-int.h
    branches/ira/gcc/ira.c
    branches/ira/gcc/ira.h
    branches/ira/gcc/lower-subreg.c
Modified:
    branches/ira/gcc/ChangeLog
    branches/ira/gcc/Makefile.in
    branches/ira/gcc/alias.c
    branches/ira/gcc/caller-save.c
    branches/ira/gcc/common.opt
    branches/ira/gcc/config/i386/i386.h
    branches/ira/gcc/config/ia64/ia64.h
    branches/ira/gcc/config/rs6000/rs6000.h
    branches/ira/gcc/config/sparc/sparc.h
    branches/ira/gcc/doc/invoke.texi
    branches/ira/gcc/doc/passes.texi
    branches/ira/gcc/doc/tm.texi
    branches/ira/gcc/dwarf2out.c
    branches/ira/gcc/emit-rtl.c
    branches/ira/gcc/flags.h
    branches/ira/gcc/global.c
    branches/ira/gcc/hard-reg-set.h
    branches/ira/gcc/local-alloc.c
    branches/ira/gcc/opts.c
    branches/ira/gcc/passes.c
    branches/ira/gcc/regclass.c
    branches/ira/gcc/regmove.c
    branches/ira/gcc/regs.h
    branches/ira/gcc/reload1.c
    branches/ira/gcc/rtl.def
    branches/ira/gcc/rtl.h
    branches/ira/gcc/simplify-rtx.c
    branches/ira/gcc/timevar.def
    branches/ira/gcc/toplev.c
    branches/ira/gcc/toplev.h
    branches/ira/gcc/tree-pass.h


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