1. 21 Jun, 2011 1 commit
    • gcc_update (gcc/config/avr/avr-tables.opt): New dependencies. · 1b916ca6
      contrib:
      	* gcc_update (gcc/config/avr/avr-tables.opt): New dependencies.
      
      gcc:
      	* config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
      	* config/avr/avr-tables.opt: New file (generated).
      	* config.gcc (avr-*-*): Use avr/avr-tables.opt.
      	* config/avr/avr-devices.c (avr_mcu_types): Move contents to
      	avr-mcus.def.
      	* config/avr/avr.c (avr_help, TARGET_HELP): Remove.
      	(avr_option_override): Don't process -mmcu= argument here.  Set
      	avr_current_device using avr_mcu_index.
      	(avr_file_start): Use avr_current_device->name instead of
      	avr_mcu_name.
      	* config/avr/avr.opt (mmcu=): Use Enum.
      	* config/avr/t-avr (avr-devices.o): Update dependencies.
      	($(srcdir)/config/avr/avr-tables.opt): New.
      	* target.def (help): Remove.
      	* doc/tm.texi.in (TARGET_HELP): Remove.
      	* doc/tm.texi: Regenerate.
      	* opts.c: Don't include target.h.
      	(common_handle_option): Don't call targetm.help.
      	* system.h (TARGET_HELP): Poison.
      	* Makefile.in (opts.o): Update dependencies.
      
      From-SVN: r175248
      Joseph Myers committed
  2. 14 Jun, 2011 1 commit
    • target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to common/common-target-def.h. · 677f3fa8
      	* target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
      	common/common-target-def.h.
      	* target.def (default_target_flags, handle_option,
      	supports_split_stack, optimization_table, init_struct,
      	except_unwind_info, unwind_tables_default, have_named_sections):
      	Move to common/common-target.def.
      	* target.h (enum opt_levels, struct default_options): Move to
      	common/common-target.h.
      	* targhooks.c (default_except_unwind_info,
      	dwarf2_except_unwind_info, sjlj_except_unwind_info,
      	default_target_handle_option, empty_optimization_table): Move to
      	common/common-targhooks.c.
      	* targhooks.h (default_except_unwind_info,
      	dwarf2_except_unwind_info, sjlj_except_unwind_info,
      	default_target_handle_option, empty_optimization_table): Move to
      	common/common-targhooks.h.
      	* common/common-target-def.h: Include common/common-targhooks.h.
      	(TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
      	defined.
      	* common/common-target.def (handle_option, option_init_struct,
      	option_optimization_table, default_target_flags,
      	except_unwind_info, supports_split_stack, unwind_tables_default,
      	have_named_sections): Move from target.def.
      	(HOOK_PREFIX): Undefine at end of file.
      	* common/common-target.h: Include input.h.
      	(enum opt_levels, struct default_options): Move from target.h.
      	* common/common-targhooks.c, common/common-targhooks.h: New.
      	* config.gcc (target_has_targetm_common): Default to yes.
      	(moxie*): Set target_has_targetm_common=no.
      	(hppa*-*-*): Don't set target_has_targetm_common=yes.
      	* doc/tm.texi: Regenerate.
      	* Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
      	(C_TARGET_DEF_H): Add common/common-targhooks.h.
      	(GCC_OBJS): Remove vec.o.
      	(OBJS): Remove hooks.o and vec.o.
      	(OBJS-libcommon-target): Add vec.o, hooks.o and
      	common/common-targhooks.o.
      	(c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
      	tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
      	expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
      	cfglayout.o, $(out_object_file), $(common_out_object_file)):
      	Update dependencies.
      	(common/common-targhooks.o): New.
      	* common/config/default-common.c: Include tm.h.  Add FIXME
      	comment.
      	* common/config/pa/pa-common.c: Include more headers.  Take
      	copyright dates from pa.c.
      	(pa_option_optimization_table, pa_handle_option,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION): Move from pa.c.
      	* common/config/alpha/alpha-common.c,
      	common/config/arm/arm-common.c, common/config/avr/avr-common.c,
      	common/config/bfin/bfin-common.c,
      	common/config/cris/cris-common.c,
      	common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
      	common/config/h8300/h8300-common.c,
      	common/config/i386/i386-common.c,
      	common/config/ia64/ia64-common.c,
      	common/config/iq2000/iq2000-common.c,
      	common/config/lm32/lm32-common.c,
      	common/config/m32c/m32c-common.c,
      	common/config/m32r/m32r-common.c,
      	common/config/m68k/m68k-common.c,
      	common/config/mcore/mcore-common.c,
      	common/config/mep/mep-common.c,
      	common/config/microblaze/microblaze-common.c,
      	common/config/mips/mips-common.c,
      	common/config/mmix/mmix-common.c,
      	common/config/mn10300/mn10300-common.c,
      	common/config/pdp11/pdp11-common.c,
      	common/config/picochip/picochip-common.c,
      	common/config/rs6000/rs6000-common.c,
      	common/config/rx/rx-common.c, common/config/s390/s390-common.c,
      	common/config/score/score-common.c, common/config/sh/sh-common.c,
      	common/config/sparc/sparc-common.c,
      	common/config/spu/spu-common.c, common/config/v850/v850-common.c,
      	common/config/vax/vax-common.c,
      	common/config/xstormy16/xstormy16-common.c,
      	common/config/xtensa/xtensa-common.c: New.
      	* config/alpha/alpha.c: Include common/common-target.h.
      	(alpha_option_optimization_table, alpha_handle_option,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
      	* config/arm/arm-protos.h (arm_except_unwind_info): Declare.
      	* config/arm/arm.c (arm_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
      	arm-common.c.
      	* config/avr/avr.c (avr_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
      	to avr-common.c.
      	* config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
      	(bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
      	TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
      	* config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
      	* config/cris/cris.c (cris_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
      	cris-common.c.
      	* config/fr30/fr30.c (fr30_option_optimization_table,
      	TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
      	to fr30-common.c.
      	* config/frv/frv.c (frv_option_optimization_table,
      	MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
      	* config/h8300/h8300.c (h8300_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
      	* config/i386/i386-protos.h (ix86_handle_option): Declare.
      	* config/i386/i386.c: Include common/common-target.h.
      	(OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
      	OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
      	OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
      	OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
      	OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
      	OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
      	OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
      	OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
      	OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
      	OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
      	OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
      	OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
      	OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
      	OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
      	OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
      	OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
      	OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
      	OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
      	OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
      	OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
      	OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
      	OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
      	OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
      	OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
      	OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
      	OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
      	OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
      	OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
      	OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
      	ix86_option_optimization_table, ix86_option_init_struct,
      	ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
      	i386-common.c.
      	* config/i386/t-i386 (i386.o): Update dependencies.
      	* config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
      	* config/ia64/ia64.c (ia64_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	ia64_handle_option): Move to ia64-common.c.
      	* config/iq2000/iq2000.c (iq2000_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
      	* config/lm32/lm32.c (lm32_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
      	to lm32-common.c.
      	* config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
      	m32c-common.c.
      	* config/m32r/m32r.c (m32r_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
      	m32r_handle_option): Move to m32r-common.c.
      	(m32r_memory_move_cost): Remove comment referring to
      	TARGET_HANDLE_OPTION.
      	* config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
      	Move to m68k-common.c.
      	* config/mcore/mcore.c (mcore_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
      	* config/mep/mep.c (mep_option_optimization_table,
      	mep_handle_option, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
      	Move to mep-common.c.
      	* config/microblaze/microblaze.c
      	(microblaze_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
      	* config/mips/mips.c (mips_handle_option,
      	mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
      	mips-common.c.
      	* config/mmix/mmix.c (mmix_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
      	Move to mmix-common.c.
      	* config/mn10300/mn10300.c (mn10300_option_optimization_table,
      	mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
      	* config/pa/pa.c: Include common/common-target.h.
      	(pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	pa_handle_option): Move to pa-common.c.
      	(pa_option_override): Use targetm_common.except_unwind_info.
      	(pa_asm_output_mi_thunk, pa_function_section): Use
      	targetm_common.have_named_sections.
      	* config/pdp11/pdp11.c (pdp11_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
      	pdp11_handle_option, pdp11_option_init_struct): Move to
      	pdp11-common.c.
      	* config/picochip/picochip.c (picochip_option_optimization_table,
      	TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
      	* config/rs6000/rs6000.c: Include common/common-target.h.
      	(rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
      	rs6000_handle_option): Move to rs6000-common.c.
      	* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
      	* config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
      	* config/s390/s390.c (processor_flags_table,
      	s390_option_optimization_table, s390_option_init_struct,
      	s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
      	* config/s390/s390.h (processor_flags_table): Declare.
      	* config/score/score.c (score_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
      	score_handle_option): Move to score-common.c.
      	* config/sh/sh.c (sh_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	sh_handle_option, sh_option_init_struct): Move to sh-common.c.
      	* config/sparc/sparc.c: Include common/common-target.h.
      	(sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
      	* config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
      	spu_option_init_struct): Move to spu-common.c.
      	* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
      	* config/v850/v850.c (small_memory_physical_max,
      	v850_handle_memory_optionn v850_handle_option,
      	v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
      	v850-common.c.
      	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
      	vax-common.c.
      	* config/xtensa/xtensa.c (xtensa_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
      	Move to xtensa-common.c.
      	* cfglayout.c: Include common/common-target.h.
      	(fixup_reorder_chain): Use targetm_common.have_named_sections.
      	* cfgrtl.c: Include common/common-target.h.
      	(force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
      	targetm_common.have_named_sections.
      	* dbxout.c: Include common/common-target.h.
      	(dbxout_function_end): Use targetm_common.have_named_sections.
      	* defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
      	targetm_common.except_unwind_info.
      	* dwarf2out.c: Include common/common-target.h.
      	(dwarf2out_do_frame, dwarf2out_do_cfi_asm,
      	dwarf2out_begin_prologue, dwarf2out_frame_init,
      	dwarf2out_frame_finish, dwarf2out_assembly_start): Use
      	targetm_common.except_unwind_info.
      	* except.c: Include common/common-target.h.
      	(init_eh, finish_eh_generation,
      	output_one_function_exception_table): Use
      	targetm_common.except_unwind_info.
      	(switch_to_exception_section): Use
      	targetm_common.have_named_sections.
      	* explow.c: Include common/common-target.h.
      	* expr.c: Include common/common-target.h.
      	(build_personality_function): Use
      	targetm_common.except_unwind_info.
      	* function.c: Include common/common-target.h.
      	(expand_function_end): Use targetm_common.except_unwind_info.
      	* haifa-sched.c: Include common/common-target.h.
      	(sched_create_recovery_edges): Use
      	targetm_common.have_named_sections.
      	* lto-opts.c: Include common/common-target.h instead of target.h.
      	(lto_reissue_options): Use targetm_common.handle_option.
      	* opts.c: Include common/common-target.h.
      	(target_handle_option): Use targetm_common.handle_option.
      	(init_options_struct): Update comment referring to
      	targetm.target_option.optimization.  Use
      	targetm_common.default_target_flags,
      	targetm_common.unwind_tables_default and
      	targetm_common.option_init_struct.
      	(default_options_optimization): Use
      	targetm_common.option_optimization_table.
      	(finish_options): Use targetm_common.except_unwind_info,
      	targetm_common.unwind_tables_default,
      	targetm_common.have_named_sections and
      	targetm_common.supports_split_stack.
      	* toplev.c: Include common/common-target.h.
      	(process_options): Use targetm_common.have_named_sections.
      	* tree-tailcall.c: Include common/common-target.h.
      	(suitable_for_tail_call_opt_p): Use
      	targetm_common.except_unwind_info.
      	* tree.c: Include common/common-target.h.
      	(build_common_builtin_nodes): Use
      	targetm_common.except_unwind_info.
      	* varasm.c: Include common/common-target.h.
      	(resolve_unique_section, hot_function_section,
      	default_function_section): Use targetm_common.have_named_sections.
      
      ada:
      	* gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
      	(ada/utils.o): Update dependencies.
      	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
      	../../../libcpp/libcpp.a.
      	* gcc-interface/utils.c: Include common/common-target.h.
      	(process_attributes): Use targetm_common.have_named_sections.
      
      c-family:
      	* c-common.c: Include common/common-target.h.
      	(handle_section_attribute): Use
      	targetm_common.have_named_sections.
      	* c-cppbuiltin.c: Include common/common-target.h.
      	(c_cpp_builtins): Use targetm_common.except_unwind_info.
      
      cp:
      	* Make-lang.in (cp/method.o): Update dependencies.
      	* method.c: Include common/common-target.h.
      	(use_thunk): Use targetm_common.have_named_sections.
      
      go:
      	* Make-lang.in (go/go-lang.o, go/go-backend.o): Update
      	dependencies.
      	* go-backend.c: Include common/common-target.h.
      	(go_write_export_data): Use targetm_common.have_named_sections.
      	* go-lang.c: Include common/common-target.h.
      	(go_langhook_init_options_struct): Use
      	targetm_common.supports_split_stack.
      
      po:
      	* exgettext: Handle common/ directory and subdirectories.
      
      From-SVN: r175064
      Joseph Myers committed
  3. 10 Jun, 2011 1 commit
  4. 25 May, 2011 1 commit
    • common.opt (flag_stack_usage_info): New variable. · a11e0df4
      	* common.opt (flag_stack_usage_info): New variable.
      	(-Wstack-usage): New option.
      	* doc/invoke.texi (Warning options): Document -Wstack-usage.
      	* opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
      	<OPT_fstack_usage>: Likewise.
      	* toplev.c (output_stack_usage): Handle -Wstack-usage.
      	* calls.c (expand_call): Test flag_stack_usage_info variable instead
      	of flag_stack_usage.
      	(emit_library_call_value_1): Likewise.
      	* explow.c (allocate_dynamic_stack_space): Likewise.
      	* function.c (instantiate_virtual_regs ): Likewise.
      	(prepare_function_start): Likewise.
      	(rest_of_handle_thread_prologue_and_epilogue): Likewise.
      	* config/alpha/alpha.c (alpha_expand_prologue): Likewise.
      	* config/arm/arm.c (arm_expand_prologue): Likewise.
      	(thumb1_expand_prologue): Likewise.
      	* config/avr/avr.c (expand_prologue): Likewise.
      	* config/i386/i386.c (ix86_expand_prologue): Likewise.
      	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
      	* config/m68k/m68k.c (m68k_expand_prologue): Likewise.
      	* config/mips/mips.c (mips_expand_prologue): Likewise.
      	* config/pa/pa.c (hppa_expand_prologue): Likewise.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/s390/s390.c (s390_emit_prologue): Likewise.
      	* config/sh/sh.c (sh_expand_prologue): Likewise.
      	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
      	* config/spu/spu.c (spu_expand_prologue): Likewise.
      
      From-SVN: r174182
      Eric Botcazou committed
  5. 11 May, 2011 1 commit
  6. 26 Apr, 2011 1 commit
  7. 31 Mar, 2011 1 commit
    • opts.h (cl_option): Add comments to fields. · 300d83d9
      	* opts.h (cl_option): Add comments to fields.  Add bit-fields for
      	various flags.
      	(CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
      	CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
      	CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
      	CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
      	(CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
      	* opt-functions.awk (flag_init, switch_bit_fields): New.
      	(switch_flags): Don't handle flags moved to bit-fields.  Don't
      	generate CL_MISSING_OK or CL_SAVE.
      	* optc-gen.awk: Update to generate bit-field output as well as
      	flags field.
      	* gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
      	bit-field instead of CL_REJECT_DRIVER flag.
      	* opts-common.c (generate_canonical_option,
      	decode_cmdline_option): Use bit-fields instead of CL_* flags.
      	* opts.c (maybe_default_option): Use cl_reject_negative bit-field
      	instead of CL_REJECT_NEGATIVE flag.
      	* toplev.c (print_switch_values): Use cl_report bit-field instead
      	of CL_REPORT flag.
      
      From-SVN: r171804
      Joseph Myers committed
  8. 29 Mar, 2011 1 commit
    • [multiple changes] · 1756cb66
      2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-color.c (update_left_conflict_sizes_p): Don't assume that
      	conflict object hard regset nodes have intersecting hard reg sets.
      	
      	* regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
      	after regstat_init_n_sets_and_refs.
      
      	* ira.c: Add more comments at the top.
      	(setup_stack_reg_pressure_class, setup_pressure_classes):
      	Add comments how we compute the register pressure classes.
      	(setup_allocno_and_important_classes): Add more comments.
      	(setup_class_translate_array, reorder_important_classes)
      	(setup_reg_class_relations): Add comments.
      
      	* ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
      	start of the file.
      
      	* ira-color.c: Add 2011 to the Copyright line.
      	(assign_hard_reg):  Add more comments.
      	(improve_allocation): Ditto.
      
      	* ira-costs.c: Add 2011 to the Copyright line.
      	(setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
      	comments.
      	(setup_regno_cost_classes_by_mode): Ditto.
      
      	Initial patches from ira-improv branch:
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c: (ira_create_object): Remove initialization of
      	OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
      	ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
      	ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
      	Initialize ALLOCNO_ADD_DATA.
      	(copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
      	and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
      	ALLOCNO_REG.
      	(ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
      
      	* ira.c (ira_reallocate): Remove.
      	(setup_pressure_classes): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
      	(ira): Call ira_initiate_emit_data and ira_finish_emit_data.
      
      	* ira-color.c: Use ALLOCNO_COLOR_DATA instead of
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
      	ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
      	instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
      	OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
      	Fix formatting.
      	(object_hard_regs_t, object_hard_regs_node_t): Move from
      	ira-int.h.
      	(struct object_hard_regs, struct object_hard_regs_node): Ditto.
      	(struct allocno_color_data): New.
      	(allocno_color_data_t): New typedef.
      	(allocno_color_data): New definition.
      	(ALLOCNO_COLOR_DATA): New macro.
      	(struct object_color_data): New.
      	(object_color_data_t): New typedef.
      	(object_color_data): New definition.
      	(OBJECT_COLOR_DATA): New macro.
      	(update_copy_costs, calculate_allocno_spill_cost): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(move_spill_restore, update_curr_costs): Ditto.
      	(allocno_spill_priority): Make it inline.
      	(color_pass): Allocate and free allocno_color_dat and
      	object_color_data.
      	(struct coalesce_data, coalesce_data_t): New.
      	(allocno_coalesce_data): New definition.
      	(ALLOCNO_COALESCE_DATA): New macro.
      	(merge_allocnos, coalesced_allocno_conflict_p): Use
      	ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
      	ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
      	(coalesce_allocnos): Ditto.
      	(setup_coalesced_allocno_costs_and_nums): Ditto.
      	(collect_spilled_coalesced_allocnos): Ditto.
      	(slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
      	(setup_slot_coalesced_allocno_live_ranges): Ditto.
      	(coalesce_spill_slots): Ditto.
      	(ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
      	free allocno_coalesce_data.
      
      	* ira-conflicts.c: Fix formatting.
      	(process_regs_for_copy): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(build_object_conflicts): Optimize.
      
      	* ira-costs.c (record_reg_classes): Optimize.  Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost, ira_may_move_in_cost, and
      	ira_may_move_out_cost instead of ira_get_register_move_cost and
      	ira_get_may_move_cost.
      	(record_address_regs): Ditto.
      	(scan_one_insn): Optimize.
      	(find_costs_and_classes): Optimize.
      	(process_bb_node_for_hard_reg_moves): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
      	ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
      	(ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
      	definitions.
      	(ira_initiate_emit_data, ira_finish_emit_data)
      	(create_new_allocno): New functions.
      	(modify_move_list): Call create_new_alloc instead of
      	ira_create_allocno.
      	(emit_move_list): Call ira_init_register_move_cost_if_necessary.
      	Use ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-int.h: Fix some comments.
      	(object_hard_regs_t, object_hard_regs_node_t): Move
      	to ira-color.c.
      	(struct object_hard_regs, struct object_hard_regs_node):
      	Ditto.
      	(struct ira_object): Remove profitable_hard_regs, hard_regs_node,
      	hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
      	add_data.
      	(struct ira_allocno): Make mode and aclass a bitfield.  Move other
      	bitfield after mode.  Make hard_regno a short int.  Make
      	hard_regno short.  Remove first_coalesced_allocno and
      	next_coalesced_allocno.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
      	into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
      	available_regs_num, next_bucket_allocno, prev_bucket_allocno,
      	temp, colorable_p.  Add new member add_data.
      	(ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
      	(ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
      	(ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
      	(ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_ADD_DATA): New macro.
      	(ira_emit_data_t): New typedef.
      	(struct ira_emit_data): New.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
      	from struct ira_allocno.
      	(ALLOCNO_EMIT_DATA): New macro.
      	(ira_allocno_emit_data, allocno_emit_reg): New.
      	(ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
      	(OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM):
      	Remove.
      	(OBJECT_ADD_DATA): New macro.
      	(ira_reallocate): Remove.
      	(ira_initiate_emit_data, ira_finish_emit_data): New.
      	(ira_get_register_move_cost, ira_get_may_move_cost): Remove.
      	(ira_init_register_move_cost_if_necessary): New.
      	(ira_object_conflict_iter_next): Merge into
      	ira_object_conflict_iter_cond.
      	(FOR_EACH_OBJECT_CONFLICT): Don't use
      	ira_object_conflict_iter_next.
      
      	* ira-live.c: (process_single_reg_class_operands): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-int.h (struct target_ira_int): Remove x_cost_classes.
      
      	* ira-costs.c: Fix formatting.
      	(cost_classes, cost_classes_num): Remove.
      	(struct cost_classes, cost_classes_t, const_cost_classes_t): New.
      	(regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
      	(cost_classes_del, cost_classes_htab): New.
      	(cost_classes_aclass_cache, cost_classes_mode_cache): New.
      	(initiate_regno_cost_classes, setup_cost_classes): New.
      	(setup_regno_cost_classes_by_aclass): New.
      	(setup_regno_cost_classes_by_mode, finish_regno_cost_classes):
      	New.
      	(record_reg_classes): Use regno_cost_classes instead of
      	cost_classes.  Move checking opposite operand up.
      	(record_address_regs): Use regno_cost_classes
      	instead of cost_classes.
      	(scan_one_insn): Ditto.  Use always general register.
      	(print_allocno_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(print_pseudo_costs): Ditto.  Use Reg_N_REFS.
      	(find_costs_and_classes): Set up cost classes for each registers.
      	Use also their mode for this.  Use regno_cost_classes instead of
      	cost_classes.
      	(setup_allocno_class_and_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(free_ira_costs, ira_init_costs): Don't use cost_classes.
      	(ira_costs, ira_set_pseudo_classes): Call
      	initiate_regno_cost_classes and finish_regno_cost_classes.
      
      	2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
      
      	* target.def (ira_cover_classes): Remove.
      
      	* doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and
      	IRA_COVER_CLASSES.
      
      	* doc/tm.texi.in: Ditto.
      
      	* ira-conflicts.c: Remove mentioning cover classes from the file.
      	Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
      	ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix
      	formatting.
      
      	* targhooks.c (default_ira_cover_classes): Remove.
      
      	* targhooks.h (default_ira_cover_classes): Ditto.
      
      	* haifa-sched.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(object_hard_regs_t, object_hard_regs_node_t): New typedefs.
      	(struct object_hard_regs, struct object_hard_regs_node): New.
      	(struct ira_object): New members profitable_hard_regs,
      	hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
      	(struct ira_allocno): Rename cover_class to aclass.  Rename
      	cover_class_cost and updated_cover_class_cost to class_cost and
      	updated_class_cost.  Remove splay_removed_p and
      	left_conflict_size.  Add new members colorable_p.
      	(ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
      	(ALLOCNO_COLORABLE_P): New macro.
      	(ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
      	(ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
      	Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
      	(OBJECT_...): Rename parameter C to O.
      	(OBJECT_PROFITABLE_HARD_REGS): New macro.
      	(OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
      	(OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
      	(struct target_ira_int): New members x_ira_max_memory_move_cost,
      	x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
      	x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
      	x_ira_reg_pressure_class_p, x_ira_important_class_nums,
      	x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
      	x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
      	x_ira_reg_class_subunion.
      	(ira_max_memory_move_cost, ira_max_register_move_cost)
      	(ira_max_may_move_in_cost, ira_max_may_move_out_cost)
      	(ira_reg_allocno_class_p, ira_reg_pressure_class_p)
      	(ira_important_class_nums, ira_reg_class_superunion): New macros.
      	(prohibited_class_mode_regs): Rename to
      	ira_prohibited_class_mode_regs.
      	(ira_reg_class_union): Rename to ira_reg_class_subunion.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.
      	(ira_debug_hard_regs_forest): New.
      	(ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
      	(ira_object_conflict_iter_next): Fix comments.
      	(ira_hard_reg_set_intersection_p, hard_reg_set_size): New
      	functions.
      	(ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
      	cover_class to aclass.
      	(ira_allocate_and_accumulate_costs): Ditto.
      	(ira_allocate_and_set_or_copy_costs): Ditto.
      
      	* opts.c (decode_options): Remove ira_cover_class check.
      
      	* ira-color.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
      	instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(splay-tree.h): Remove include.
      	(allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
      	before copy_freq_compare_func.
      	(allocnos_for_spilling, removed_splay_allocno_vec): Remove.
      	(object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
      	New definitions.
      	(hard_regs_roots, hard_regs_node_vec): Ditto.
      	(object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
      	(insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
      	(finish_object_hard_regs, object_hard_regs_compare): Ditto.
      	(create_new_object_hard_regs_node): Ditto.
      	(add_new_object_hard_regs_node_to_forest): Ditto.
      	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
      	Ditto.
      	(setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
      	Ditto.
      	(print_hard_reg_set, print_hard_regs_subforest): Ditto.
      	(print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
      	(remove_unused_object_hard_regs_nodes): Ditto.
      	(enumerate_object_hard_regs_nodes): Ditto.
      	(object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
      	(object_hard_regs_subnode_t): Ditto.
      	(struct object_hard_regs_subnode): Ditto.
      	(object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
      	(setup_object_hard_regs_subnode_index): Ditto.
      	(get_object_hard_regs_subnodes_num): Ditto.
      	(form_object_hard_regs_nodes_forest): Ditto.
      	(finish_object_hard_regs_nodes_tree): Ditto.
      	(finish_object_hard_regs_nodes_forest): Ditto.
      	(allocnos_have_intersected_live_ranges_p): Rename to
      	allocnos_conflict_by_live_ranges_p.  Move before
      	copy_freq_compare_func.
      	(pseudos_have_intersected_live_ranges_p): Rename to
      	conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
      	(setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
      	(empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
      	(update_copy_costs): Remove assert.  Skip cost update if the hard
      	reg does not belong the class.
      	(assign_hard_reg): Process only profitable hard regs.
      	(uncolorable_allocnos_num): Make it scalar.
      	(allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
      	and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
      	and ira_reg_class_max_nregs.
      	(bucket_allocno_compare_func): Check frequency first.
      	(sort_bucket): Add compare function as a parameter.
      	(add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
      	(uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
      	(push_allocno_to_stack): Rewrite for checking new allocno
      	colorability.
      	(remove_allocno_from_bucket_and_push): Print cost too.  Remove
      	assert.
      	(push_only_colorable): Pass new parameter to sort_bucket.
      	(push_allocno_to_spill): Remove.
      	(allocno_spill_priority_compare): Make it inline and rewrite.
      	(splay_tree_allocate, splay_tree_free): Remove.
      	(allocno_spill_sort_compare): New function.
      	(push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
      	build and use splay tree.  Choose first allocno in uncolorable
      	allocno bucket to spill.  Remove setting spill cost.
      	(all_conflicting_hard_regs): Remove.
      	(setup_allocno_available_regs_num): Check only profitable hard
      	regs.  Print info about hard regs nodes.
      	(setup_allocno_left_conflicts_size): Remove.
      	(put_allocno_into_bucket): Don't call
      	setup_allocno_left_conflicts_size.  Use
      	setup_left_conflict_sizes_p.
      	(improve_allocation): New.
      	(color_allocnos): Call setup_profitable_hard_regs,
      	form_object_hard_regs_nodes_forest, improve_allocation,
      	finish_object_hard_regs_nodes_forest.  Setup spill cost.
      	(print_loop_title): Use pressure classes.
      	(color_allocnso): Ditto.
      	(do_coloring): Remove allocation and freeing splay_tree_node_pool
      	and allocnos_for_spilling.
      	(ira_sort_regnos_for_alter_reg): Don't setup members
      	{first,next}_coalesced_allocno.
      	(color): Remove allocating and freeing removed_splay_allocno_vec.
      	(fast_allocation): Use ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      
      	* ira-lives.c: Remove mentioning cover classes from the file.  Fix
      	formatting.
      	(update_allocno_pressure_excess_length): Use pressure classes.
      	(inc_register_pressure, dec_register_pressure): Check for pressure
      	class.
      	(mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
      	pressure class.  Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
      	(mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
      	(single_reg_class): Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(process_bb_node_lives): Use pressure classes.
      
      	* ira-emit.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(change_loop): Use pressure classes.
      	(modify_move_list): Call ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      
      	* ira-build.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
      	ALLOCNO_UPDATED_CLASS_COST instead of
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
      	ALLOCNO_COLORABLE_P.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	Update conflict regs for the objects.
      	(create_cap_allocno): Remove assert.  Don't propagate
      	ALLOCNO_AVAILABLE_REGS_NUM.
      	(ira_free_allocno_costs): New function.
      	(finish_allocno): Change a part of code into call of
      	ira_free_allocno_costs.
      	(low_pressure_loop_node_p): Use pressure classes.
      	(object_range_compare_func): Don't compare classes.
      	(setup_min_max_conflict_allocno_ids): Ditto.
      
      	* loop-invariant.c: Remove mentioning cover classes from the file.
      	Use ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
      	(get_cover_class_and_nregs): Rename to
      	get_cover_pressure_and_nregs.  Use ira_reg_class_max_nregs instead
      	of ira_reg_class_nregs.  Use reg_allocno_class instead of
      	reg_cover_class.
      	(get_inv_cost): Use instead ira_stack_reg_pressure_class of
      	STACK_REG_COVER_CLASS.
      	(get_regno_cover_class): Rename to get_regno_pressure_class.
      	(move_loop_invariants): Initialize and finalize regstat.
      
      	* ira.c: Remove mentioning cover classes from the file.  Add
      	comments about coloring without cover classes.  Use ALLOCNO_CLASS
      	instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
      	setup_class_subset_and_memory_move_costs.
      	(setup_stack_reg_pressure_class, setup_pressure_classes): New.
      	(setup_cover_and_important_classes): Rename to
      	setup_allocno_and_important_classes.
      	(setup_class_translate_array): New.
      	(setup_class_translate): Call it for allocno and pressure classes.
      	(cover_class_order): Rename to allocno_class_order.
      	(comp_reg_classes_func): Use ira_allocno_class_translate instead
      	of ira_class_translate.
      	(reorder_important_classes): Set up ira_important_class_nums.
      	(setup_reg_class_relations): Set up ira_reg_class_superunion.
      	(print_class_cover): Rename to print_classes.  Add parameter.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	Print pressure classes too.
      	(find_reg_class_closure): Rename to find_reg_classes.  Don't call
      	setup_reg_subclasses.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(setup_prohibited_class_mode_regs): Use
      	ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      	(clarify_prohibited_class_mode_regs): New function.
      	(ira_init_register_move_cost): Set up ira_max_register_move_cost,
      	ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
      	(ira_init_once): Initialize them.
      	(free_register_move_costs): Process them.
      	(ira_init): Move calls of find_reg_classes and
      	setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
      	Call clarify_prohibited_class_mode_regs.
      	(ira_no_alloc_reg): Remove.
      	(too_high_register_pressure_p): Use pressure classes.
      
      	* sched-deps.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.
      	(mark_insn_hard_regno_birth, mark_hard_regno_death): Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira.h: Add 2010 to Copyright.
      	(ira_no_alloc_reg): Remove external.
      	(struct target_ira): Rename x_ira_hard_regno_cover_class,
      	x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
      	x_ira_class_translate to x_ira_hard_regno_allocno_class,
      	x_ira_allocno_classes_num, x_ira_allocno_classes, and
      	x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
      	x_ira_pressure_classes, x_ira_pressure_class_translate, and
      	x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
      	x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
      	x_ira_no_alloc_regs.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_cover_size, ira_reg_class_cover): Rename to
      	ira_allocno_classes_num and ira_allocno_classes.
      	(ira_class_translate): Rename to ira_allocno_class_translate.
      	(ira_pressure_classes_num, ira_pressure_classes): New definitions.
      	(ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
      	(ira_no_alloc_regs): New.
      
      	* ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.  Use ALLOCNO_CLASS instead of
      	ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS_COST.
      	(regno_cover_class): Rename to regno_aclass.
      	(record_reg_classes): Use ira_reg_class_subunion instead of
      	ira_reg_class_union.
      	(record_address_regs): Check overflow.
      	(scan_one_insn): Ditto.
      	(print_allocno_costs): Print total mem cost fore regional
      	allocation.
      	(print_pseudo_costs): Use REG_N_REFS.
      	(find_costs_and_classes): Use classes intersected with them on the
      	1st pass. Check overflow.  Use ira_reg_class_subunion instead of
      	ira_reg_class_union.  Use ira_allocno_class_translate and
      	regno_aclass instead of ira_class_translate and regno_cover_class.
      	Modify code for finding regno_aclass.  Setup preferred classes for
      	the next pass.
      	(setup_allocno_cover_class_and_costs): Rename to
      	setup_allocno_class_and_costs.  Use regno_aclass instead of
      	regno_cover_class.  Use ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      	(init_costs, finish_costs): Use regno_aclass instead of
      	regno_cover_class.
      	(ira_costs): Use setup_allocno_class_and_costs instead of
      	setup_allocno_cover_class_and_costs.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
      	by processing objects.  Use ira_reg_class_max_nregs instead of
      	ira_reg_class_nregs.
      
      	* rtl.h (reg_cover_class): Rename to reg_allocno_class.
      
      	* sched-int.h: Remove mentioning cover classes from the file.
      	(sched_regno_cover_class): Rename to sched_regno_pressure_class.
      
      	* reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(struct reg_pref): Rename coverclass into allocnoclass.
      	(reg_cover_class): Rename to reg_allocno_class.
      
      	* Makefile.in (ira-color.o): Remove SPLAY_TREE_H from
      	dependencies.
      
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
      
      	* config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
      	(i386_ira_cover_classes): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
      	(mips_ira_cover_classes): Ditto.
      
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
      	(IRA_COVER_CLASSES_VSX): Ditto.
      
      	* config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
      	(rs6000_ira_cover_classes): Ditto.
      
      	* config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/score/score.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
      
      From-SVN: r171649
      Vladimir Makarov committed
  9. 28 Mar, 2011 1 commit
  10. 27 Mar, 2011 1 commit
    • [multiple changes] · fe82cdfb
      2011-03-27  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
      	after regstat_init_n_sets_and_refs.
      
      	* ira.c: Add more comments at the top.
      	(setup_stack_reg_pressure_class, setup_pressure_classes):
      	Add comments how we compute the register pressure classes.
      	(setup_allocno_and_important_classes): Add more comments.
      	(setup_class_translate_array, reorder_important_classes)
      	(setup_reg_class_relations): Add comments.
      
      	* ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
      	start of the file.
      
      	* ira-color.c: Add 2011 to the Copyright line.
      	(assign_hard_reg):  Add more comments.
      	(improve_allocation): Ditto.
      
      	* ira-costs.c: Add 2011 to the Copyright line.
      	(setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
      	comments.
      	(setup_regno_cost_classes_by_mode): Ditto.
      
      	Initial patches from ira-improv branch:
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c: (ira_create_object): Remove initialization of
      	OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
      	ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
      	ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
      	Initialize ALLOCNO_ADD_DATA.
      	(copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
      	and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
      	ALLOCNO_REG.
      	(ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
      
      	* ira.c (ira_reallocate): Remove.
      	(setup_pressure_classes): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
      	(ira): Call ira_initiate_emit_data and ira_finish_emit_data.
      
      	* ira-color.c: Use ALLOCNO_COLOR_DATA instead of
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
      	ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
      	instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
      	OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
      	Fix formatting.
      	(object_hard_regs_t, object_hard_regs_node_t): Move from
      	ira-int.h.
      	(struct object_hard_regs, struct object_hard_regs_node): Ditto.
      	(struct allocno_color_data): New.
      	(allocno_color_data_t): New typedef.
      	(allocno_color_data): New definition.
      	(ALLOCNO_COLOR_DATA): New macro.
      	(struct object_color_data): New.
      	(object_color_data_t): New typedef.
      	(object_color_data): New definition.
      	(OBJECT_COLOR_DATA): New macro.
      	(update_copy_costs, calculate_allocno_spill_cost): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(move_spill_restore, update_curr_costs): Ditto.
      	(allocno_spill_priority): Make it inline.
      	(color_pass): Allocate and free allocno_color_dat and
      	object_color_data.
      	(struct coalesce_data, coalesce_data_t): New.
      	(allocno_coalesce_data): New definition.
      	(ALLOCNO_COALESCE_DATA): New macro.
      	(merge_allocnos, coalesced_allocno_conflict_p): Use
      	ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
      	ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
      	(coalesce_allocnos): Ditto.
      	(setup_coalesced_allocno_costs_and_nums): Ditto.
      	(collect_spilled_coalesced_allocnos): Ditto.
      	(slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
      	(setup_slot_coalesced_allocno_live_ranges): Ditto.
      	(coalesce_spill_slots): Ditto.
      	(ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
      	free allocno_coalesce_data.
      
      	* ira-conflicts.c: Fix formatting.
      	(process_regs_for_copy): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(build_object_conflicts): Optimize.
      
      	* ira-costs.c (record_reg_classes): Optimize.  Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost, ira_may_move_in_cost, and
      	ira_may_move_out_cost instead of ira_get_register_move_cost and
      	ira_get_may_move_cost.
      	(record_address_regs): Ditto.
      	(scan_one_insn): Optimize.
      	(find_costs_and_classes): Optimize.
      	(process_bb_node_for_hard_reg_moves): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
      	ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
      	(ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
      	definitions.
      	(ira_initiate_emit_data, ira_finish_emit_data)
      	(create_new_allocno): New functions.
      	(modify_move_list): Call create_new_alloc instead of
      	ira_create_allocno.
      	(emit_move_list): Call ira_init_register_move_cost_if_necessary.
      	Use ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-int.h: Fix some comments.
      	(object_hard_regs_t, object_hard_regs_node_t): Move
      	to ira-color.c.
      	(struct object_hard_regs, struct object_hard_regs_node):
      	Ditto.
      	(struct ira_object): Remove profitable_hard_regs, hard_regs_node,
      	hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
      	add_data.
      	(struct ira_allocno): Make mode and aclass a bitfield.  Move other
      	bitfield after mode.  Make hard_regno a short int.  Make
      	hard_regno short.  Remove first_coalesced_allocno and
      	next_coalesced_allocno.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
      	into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
      	available_regs_num, next_bucket_allocno, prev_bucket_allocno,
      	temp, colorable_p.  Add new member add_data.
      	(ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
      	(ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
      	(ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
      	(ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_ADD_DATA): New macro.
      	(ira_emit_data_t): New typedef.
      	(struct ira_emit_data): New.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
      	from struct ira_allocno.
      	(ALLOCNO_EMIT_DATA): New macro.
      	(ira_allocno_emit_data, allocno_emit_reg): New.
      	(ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
      	(OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM):
      	Remove.
      	(OBJECT_ADD_DATA): New macro.
      	(ira_reallocate): Remove.
      	(ira_initiate_emit_data, ira_finish_emit_data): New.
      	(ira_get_register_move_cost, ira_get_may_move_cost): Remove.
      	(ira_init_register_move_cost_if_necessary): New.
      	(ira_object_conflict_iter_next): Merge into
      	ira_object_conflict_iter_cond.
      	(FOR_EACH_OBJECT_CONFLICT): Don't use
      	ira_object_conflict_iter_next.
      
      	* ira-live.c: (process_single_reg_class_operands): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-int.h (struct target_ira_int): Remove x_cost_classes.
      
      	* ira-costs.c: Fix formatting.
      	(cost_classes, cost_classes_num): Remove.
      	(struct cost_classes, cost_classes_t, const_cost_classes_t): New.
      	(regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
      	(cost_classes_del, cost_classes_htab): New.
      	(cost_classes_aclass_cache, cost_classes_mode_cache): New.
      	(initiate_regno_cost_classes, setup_cost_classes): New.
      	(setup_regno_cost_classes_by_aclass): New.
      	(setup_regno_cost_classes_by_mode, finish_regno_cost_classes):
      	New.
      	(record_reg_classes): Use regno_cost_classes instead of
      	cost_classes.  Move checking opposite operand up.
      	(record_address_regs): Use regno_cost_classes
      	instead of cost_classes.
      	(scan_one_insn): Ditto.  Use always general register.
      	(print_allocno_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(print_pseudo_costs): Ditto.  Use Reg_N_REFS.
      	(find_costs_and_classes): Set up cost classes for each registers.
      	Use also their mode for this.  Use regno_cost_classes instead of
      	cost_classes.
      	(setup_allocno_class_and_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(free_ira_costs, ira_init_costs): Don't use cost_classes.
      	(ira_costs, ira_set_pseudo_classes): Call
      	initiate_regno_cost_classes and finish_regno_cost_classes.
      
      	2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
      
      	* target.def (ira_cover_classes): Remove.
      
      	* doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and
      	IRA_COVER_CLASSES.
      
      	* doc/tm.texi.in: Ditto.
      
      	* ira-conflicts.c: Remove mentioning cover classes from the file.
      	Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
      	ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix
      	formatting.
      
      	* targhooks.c (default_ira_cover_classes): Remove.
      
      	* targhooks.h (default_ira_cover_classes): Ditto.
      
      	* haifa-sched.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(object_hard_regs_t, object_hard_regs_node_t): New typedefs.
      	(struct object_hard_regs, struct object_hard_regs_node): New.
      	(struct ira_object): New members profitable_hard_regs,
      	hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
      	(struct ira_allocno): Rename cover_class to aclass.  Rename
      	cover_class_cost and updated_cover_class_cost to class_cost and
      	updated_class_cost.  Remove splay_removed_p and
      	left_conflict_size.  Add new members colorable_p.
      	(ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
      	(ALLOCNO_COLORABLE_P): New macro.
      	(ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
      	(ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
      	Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
      	(OBJECT_...): Rename parameter C to O.
      	(OBJECT_PROFITABLE_HARD_REGS): New macro.
      	(OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
      	(OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
      	(struct target_ira_int): New members x_ira_max_memory_move_cost,
      	x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
      	x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
      	x_ira_reg_pressure_class_p, x_ira_important_class_nums,
      	x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
      	x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
      	x_ira_reg_class_subunion.
      	(ira_max_memory_move_cost, ira_max_register_move_cost)
      	(ira_max_may_move_in_cost, ira_max_may_move_out_cost)
      	(ira_reg_allocno_class_p, ira_reg_pressure_class_p)
      	(ira_important_class_nums, ira_reg_class_superunion): New macros.
      	(prohibited_class_mode_regs): Rename to
      	ira_prohibited_class_mode_regs.
      	(ira_reg_class_union): Rename to ira_reg_class_subunion.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.
      	(ira_debug_hard_regs_forest): New.
      	(ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
      	(ira_object_conflict_iter_next): Fix comments.
      	(ira_hard_reg_set_intersection_p, hard_reg_set_size): New
      	functions.
      	(ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
      	cover_class to aclass.
      	(ira_allocate_and_accumulate_costs): Ditto.
      	(ira_allocate_and_set_or_copy_costs): Ditto.
      
      	* opts.c (decode_options): Remove ira_cover_class check.
      
      	* ira-color.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
      	instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(splay-tree.h): Remove include.
      	(allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
      	before copy_freq_compare_func.
      	(allocnos_for_spilling, removed_splay_allocno_vec): Remove.
      	(object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
      	New definitions.
      	(hard_regs_roots, hard_regs_node_vec): Ditto.
      	(object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
      	(insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
      	(finish_object_hard_regs, object_hard_regs_compare): Ditto.
      	(create_new_object_hard_regs_node): Ditto.
      	(add_new_object_hard_regs_node_to_forest): Ditto.
      	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
      	Ditto.
      	(setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
      	Ditto.
      	(print_hard_reg_set, print_hard_regs_subforest): Ditto.
      	(print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
      	(remove_unused_object_hard_regs_nodes): Ditto.
      	(enumerate_object_hard_regs_nodes): Ditto.
      	(object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
      	(object_hard_regs_subnode_t): Ditto.
      	(struct object_hard_regs_subnode): Ditto.
      	(object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
      	(setup_object_hard_regs_subnode_index): Ditto.
      	(get_object_hard_regs_subnodes_num): Ditto.
      	(form_object_hard_regs_nodes_forest): Ditto.
      	(finish_object_hard_regs_nodes_tree): Ditto.
      	(finish_object_hard_regs_nodes_forest): Ditto.
      	(allocnos_have_intersected_live_ranges_p): Rename to
      	allocnos_conflict_by_live_ranges_p.  Move before
      	copy_freq_compare_func.
      	(pseudos_have_intersected_live_ranges_p): Rename to
      	conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
      	(setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
      	(empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
      	(update_copy_costs): Remove assert.  Skip cost update if the hard
      	reg does not belong the class.
      	(assign_hard_reg): Process only profitable hard regs.
      	(uncolorable_allocnos_num): Make it scalar.
      	(allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
      	and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
      	and ira_reg_class_max_nregs.
      	(bucket_allocno_compare_func): Check frequency first.
      	(sort_bucket): Add compare function as a parameter.
      	(add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
      	(uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
      	(push_allocno_to_stack): Rewrite for checking new allocno
      	colorability.
      	(remove_allocno_from_bucket_and_push): Print cost too.  Remove
      	assert.
      	(push_only_colorable): Pass new parameter to sort_bucket.
      	(push_allocno_to_spill): Remove.
      	(allocno_spill_priority_compare): Make it inline and rewrite.
      	(splay_tree_allocate, splay_tree_free): Remove.
      	(allocno_spill_sort_compare): New function.
      	(push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
      	build and use splay tree.  Choose first allocno in uncolorable
      	allocno bucket to spill.  Remove setting spill cost.
      	(all_conflicting_hard_regs): Remove.
      	(setup_allocno_available_regs_num): Check only profitable hard
      	regs.  Print info about hard regs nodes.
      	(setup_allocno_left_conflicts_size): Remove.
      	(put_allocno_into_bucket): Don't call
      	setup_allocno_left_conflicts_size.  Use
      	setup_left_conflict_sizes_p.
      	(improve_allocation): New.
      	(color_allocnos): Call setup_profitable_hard_regs,
      	form_object_hard_regs_nodes_forest, improve_allocation,
      	finish_object_hard_regs_nodes_forest.  Setup spill cost.
      	(print_loop_title): Use pressure classes.
      	(color_allocnso): Ditto.
      	(do_coloring): Remove allocation and freeing splay_tree_node_pool
      	and allocnos_for_spilling.
      	(ira_sort_regnos_for_alter_reg): Don't setup members
      	{first,next}_coalesced_allocno.
      	(color): Remove allocating and freeing removed_splay_allocno_vec.
      	(fast_allocation): Use ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      
      	* ira-lives.c: Remove mentioning cover classes from the file.  Fix
      	formatting.
      	(update_allocno_pressure_excess_length): Use pressure classes.
      	(inc_register_pressure, dec_register_pressure): Check for pressure
      	class.
      	(mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
      	pressure class.  Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
      	(mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
      	(single_reg_class): Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(process_bb_node_lives): Use pressure classes.
      
      	* ira-emit.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(change_loop): Use pressure classes.
      	(modify_move_list): Call ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      
      	* ira-build.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
      	ALLOCNO_UPDATED_CLASS_COST instead of
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
      	ALLOCNO_COLORABLE_P.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	Update conflict regs for the objects.
      	(create_cap_allocno): Remove assert.  Don't propagate
      	ALLOCNO_AVAILABLE_REGS_NUM.
      	(ira_free_allocno_costs): New function.
      	(finish_allocno): Change a part of code into call of
      	ira_free_allocno_costs.
      	(low_pressure_loop_node_p): Use pressure classes.
      	(object_range_compare_func): Don't compare classes.
      	(setup_min_max_conflict_allocno_ids): Ditto.
      
      	* loop-invariant.c: Remove mentioning cover classes from the file.
      	Use ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
      	(get_cover_class_and_nregs): Rename to
      	get_cover_pressure_and_nregs.  Use ira_reg_class_max_nregs instead
      	of ira_reg_class_nregs.  Use reg_allocno_class instead of
      	reg_cover_class.
      	(get_inv_cost): Use instead ira_stack_reg_pressure_class of
      	STACK_REG_COVER_CLASS.
      	(get_regno_cover_class): Rename to get_regno_pressure_class.
      	(move_loop_invariants): Initialize and finalize regstat.
      
      	* ira.c: Remove mentioning cover classes from the file.  Add
      	comments about coloring without cover classes.  Use ALLOCNO_CLASS
      	instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
      	setup_class_subset_and_memory_move_costs.
      	(setup_stack_reg_pressure_class, setup_pressure_classes): New.
      	(setup_cover_and_important_classes): Rename to
      	setup_allocno_and_important_classes.
      	(setup_class_translate_array): New.
      	(setup_class_translate): Call it for allocno and pressure classes.
      	(cover_class_order): Rename to allocno_class_order.
      	(comp_reg_classes_func): Use ira_allocno_class_translate instead
      	of ira_class_translate.
      	(reorder_important_classes): Set up ira_important_class_nums.
      	(setup_reg_class_relations): Set up ira_reg_class_superunion.
      	(print_class_cover): Rename to print_classes.  Add parameter.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	Print pressure classes too.
      	(find_reg_class_closure): Rename to find_reg_classes.  Don't call
      	setup_reg_subclasses.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(setup_prohibited_class_mode_regs): Use
      	ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      	(clarify_prohibited_class_mode_regs): New function.
      	(ira_init_register_move_cost): Set up ira_max_register_move_cost,
      	ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
      	(ira_init_once): Initialize them.
      	(free_register_move_costs): Process them.
      	(ira_init): Move calls of find_reg_classes and
      	setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
      	Call clarify_prohibited_class_mode_regs.
      	(ira_no_alloc_reg): Remove.
      	(too_high_register_pressure_p): Use pressure classes.
      
      	* sched-deps.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.
      	(mark_insn_hard_regno_birth, mark_hard_regno_death): Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira.h: Add 2010 to Copyright.
      	(ira_no_alloc_reg): Remove external.
      	(struct target_ira): Rename x_ira_hard_regno_cover_class,
      	x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
      	x_ira_class_translate to x_ira_hard_regno_allocno_class,
      	x_ira_allocno_classes_num, x_ira_allocno_classes, and
      	x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
      	x_ira_pressure_classes, x_ira_pressure_class_translate, and
      	x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
      	x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
      	x_ira_no_alloc_regs.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_cover_size, ira_reg_class_cover): Rename to
      	ira_allocno_classes_num and ira_allocno_classes.
      	(ira_class_translate): Rename to ira_allocno_class_translate.
      	(ira_pressure_classes_num, ira_pressure_classes): New definitions.
      	(ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
      	(ira_no_alloc_regs): New.
      
      	* ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.  Use ALLOCNO_CLASS instead of
      	ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS_COST.
      	(regno_cover_class): Rename to regno_aclass.
      	(record_reg_classes): Use ira_reg_class_subunion instead of
      	ira_reg_class_union.
      	(record_address_regs): Check overflow.
      	(scan_one_insn): Ditto.
      	(print_allocno_costs): Print total mem cost fore regional
      	allocation.
      	(print_pseudo_costs): Use REG_N_REFS.
      	(find_costs_and_classes): Use classes intersected with them on the
      	1st pass. Check overflow.  Use ira_reg_class_subunion instead of
      	ira_reg_class_union.  Use ira_allocno_class_translate and
      	regno_aclass instead of ira_class_translate and regno_cover_class.
      	Modify code for finding regno_aclass.  Setup preferred classes for
      	the next pass.
      	(setup_allocno_cover_class_and_costs): Rename to
      	setup_allocno_class_and_costs.  Use regno_aclass instead of
      	regno_cover_class.  Use ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      	(init_costs, finish_costs): Use regno_aclass instead of
      	regno_cover_class.
      	(ira_costs): Use setup_allocno_class_and_costs instead of
      	setup_allocno_cover_class_and_costs.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
      	by processing objects.  Use ira_reg_class_max_nregs instead of
      	ira_reg_class_nregs.
      
      	* rtl.h (reg_cover_class): Rename to reg_allocno_class.
      
      	* sched-int.h: Remove mentioning cover classes from the file.
      	(sched_regno_cover_class): Rename to sched_regno_pressure_class.
      
      	* reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(struct reg_pref): Rename coverclass into allocnoclass.
      	(reg_cover_class): Rename to reg_allocno_class.
      
      	* Makefile.in (ira-color.o): Remove SPLAY_TREE_H from
      	dependencies.
      
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
      
      	* config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
      	(i386_ira_cover_classes): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
      	(mips_ira_cover_classes): Ditto.
      
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
      	(IRA_COVER_CLASSES_VSX): Ditto.
      
      	* config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
      	(rs6000_ira_cover_classes): Ditto.
      
      	* config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/score/score.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
      
      From-SVN: r171583
      Vladimir Makarov committed
  11. 24 Mar, 2011 1 commit
    • invoke.texi (max-stores-to-sink): Document. · bfe068c3
              * doc/invoke.texi (max-stores-to-sink): Document.
              * params.h (MAX_STORES_TO_SINK): Define.
              * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
              if either vectorization or if-conversion is disabled.
              * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
              tree-vect-data-refs.c vect_equal_offsets.
              (dr_equal_offsets_p): New function.
              (find_data_references_in_bb): Remove static.
              * tree-data-ref.h (find_data_references_in_bb): Declare.
              (dr_equal_offsets_p): Likewise.
              * tree-vect-data-refs.c (vect_equal_offsets): Move to
              tree-data-ref.c.
              (vect_drs_dependent_in_basic_block): Update calls to
              vect_equal_offsets.
              (vect_check_interleaving): Likewise.
              * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
              (cond_if_else_store_replacement): Rename to...
              (cond_if_else_store_replacement_1): ... this.  Change arguments
              and documentation.
              (cond_if_else_store_replacement): New function.
              * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
              * params.def (PARAM_MAX_STORES_TO_SINK): Define.
      
      From-SVN: r171381
      Ira Rosen committed
  12. 23 Mar, 2011 1 commit
    • Makefile.in (IPA_TYPE_ESCAPE_H): Remove. · b8beb4d1
      2011-03-23  Richard Guenther  <rguenther@suse.de>
      
      	* Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
      	(OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
      	(tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
      	(alias.o): Likewise.
      	(ipa-type-escape.o): Remove.
      	(ipa-struct-reorg.o): Likewise.
      	(GTFILES): Remove ipa-struct-reorg.c.
      	* alias.c: Do not include ipa-type-escape.h.
      	* tree-ssa-alias.c: Likewise.
      	* common.opt (fipa-struct-reorg): Preserve for backward compatibility.
      	* opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
      	* passes.c (init_optimization_passes): Remove ipa-struct-reorg
      	and ipa-type-escape passes.
      	* tree-pass.h (pass_ipa_type_escape): Remove.
      	(pass_ipa_struct_reorg): Likewise.
      	* ipa-struct-reorg.h: Remove.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* doc/invoke.texi (-fipa-struct-reorg): Remove.
      	(--param struct-reorg-cold-struct-ratio): Likewise.
      	* params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
      	* params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
      	* timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
      
      	* gcc.dg/struct: Remove directory and contents.
      
      From-SVN: r171352
      Richard Guenther committed
  13. 22 Mar, 2011 1 commit
    • target.def (handle_option): Take gcc_options and cl_decoded_option pointers and location_t. · 96e45421
      	* target.def (handle_option): Take gcc_options and
      	cl_decoded_option pointers and location_t.
      	* doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
      	* doc/tm.texi: Regenerate.
      	* hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
      	* hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
      	* lto-opts.c (lto_reissue_options): Generate option structure for
      	targetm.handle_option call.
      	* opts.c (target_handle_option): Update call to
      	targetm.handle_option.  Remove assertions about values now passed
      	down to hook.
      	* targhooks.c (default_target_handle_option): New.
      	* targhooks.h (default_target_handle_option): Declare.
      	* config/alpha/alpha.c: Include opts.h.
      	(alpha_handle_option): Update to new hook interface.
      	* config/arm/arm.c: Include opts.h.
      	(arm_handle_option): Update to new hook interface.
      	* config/arm/t-arm (arm.o): Update dependencies.
      	* config/bfin/bfin.c: Include opts.h.
      	(bfin_handle_option): Update to new hook interface.
      	* config/cris/cris.c: Include opts.h.
      	(cris_handle_option): Update to new hook interface.
      	* config/frv/frv.c: Include opts.h.
      	(frv_handle_option): Update to new hook interface.
      	* config/i386/i386.c: Include opts.h.
      	(ix86_handle_option): Update to new hook interface.
      	(ix86_valid_target_attribute_inner_p): Generate option structure
      	for call to ix86_handle_option.
      	* config/i386/t-i386 (i386.o): Update dependencies.
      	* config/ia64/ia64.c: Include opts.h.
      	(ia64_handle_option): Update to new hook interface.
      	* config/ia64/t-ia64 (ia64.o): Update dependencies.
      	* config/iq2000/iq2000.c: Include opts.h.
      	(iq2000_handle_option): Update to new hook interface.
      	* config/m32c/m32c.c: Include opts.h.
      	(m32c_handle_option): Update to new hook interface.
      	* config/m32r/m32r.c: Include opts.h.
      	(m32r_handle_option): Update to new hook interface.
      	* config/m68k/m68k.c: Include opts.h.
      	(m68k_handle_option): Update to new hook interface.
      	* config/mep/mep.c: Include opts.h.
      	(mep_handle_option): Update to new hook interface.
      	* config/microblaze/microblaze.c: Include opts.h.
      	(microblaze_handle_option): Update to new hook interface.
      	* config/mips/mips.c: Include opts.h.
      	(mips_handle_option): Update to new hook interface.
      	* config/mn10300/mn10300.c: Include opts.h.
      	(mn10300_handle_option): Update to new hook interface.
      	* config/pa/pa.c: Include opts.h.
      	(pa_handle_option): Update to new hook interface.
      	* config/pdp11/pdp11.c: Include opts.h.
      	(pdp11_handle_option): Update to new hook interface.
      	* config/rs6000/rs6000.c: Include opts.h.
      	(rs6000_handle_option): Update to new hook interface.
      	* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
      	* config/rx/rx.c: Include opts.h.
      	(rx_handle_option): Update to new hook interface.
      	* config/s390/s390.c: Include opts.h.
      	(s390_handle_option): Update to new hook interface.
      	* config/score/score.c: Include opts.h.
      	(score_handle_option): Update to new hook interface.
      	* config/sh/sh.c: Include opts.h.
      	(sh_handle_option): Update to new hook interface.
      	* config/sparc/sparc.c: Include opts.h.
      	(sparc_handle_option): Update to new hook interface.
      	* config/v850/v850.c: Include opts.h.
      	(v850_handle_option): Update to new hook interface.
      
      From-SVN: r171308
      Joseph Myers committed
  14. 17 Feb, 2011 1 commit
  15. 08 Feb, 2011 1 commit
    • common.opt (fcx-limited-range): Add SetByCombined flag. · 5e46b0c6
      	* common.opt (fcx-limited-range): Add SetByCombined flag.
      	(ffinite-math-only, fmath-errno, frounding-math): Likewise.
      	(fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
      	(fassociative-math, freciprocal-math): Likewise.
      	(funsafe-math-optimizations): Likewise.
      	* opth-gen.awk: Handle SetByCombined.
      	* optc-gen.awk: Likewise.
      	* opts.c (set_fast_math_flags): Don't override flag if set by
      	frontend.
      	(set_unsafe_math_optimizations_flags): Likewise.
      	* doc/options.texi (Option properties): Document SetByCombined.
      
      From-SVN: r169930
      Ian Lance Taylor committed
  16. 01 Feb, 2011 1 commit
  17. 22 Jan, 2011 1 commit
  18. 14 Jan, 2011 1 commit
    • common.opt (fdevirtualize): New flag. · 05842ff5
      2011-01-15  Martin Jambor  <mjambor@suse.cz>
      
      	* common.opt (fdevirtualize): New flag.
      	* doc/invoke.texi (Option Summary): Document it.
      	* opts.c (default_options_table): Add devirtualize flag.
      	* ipa-prop.c (detect_type_change): Return immediately if
      	devirtualize flag is not set.
      	(detect_type_change_ssa): Likewise.
      	(compute_known_type_jump_func): Likewise.
      	(ipa_analyze_virtual_call_uses): Likewise.
      
      From-SVN: r168826
      Martin Jambor committed
  19. 12 Jan, 2011 1 commit
  20. 08 Jan, 2011 1 commit
  21. 20 Dec, 2010 1 commit
  22. 19 Dec, 2010 1 commit
  23. 01 Dec, 2010 2 commits
    • * opts.c: Expand comment on tm.h include. · 0df226a4
      From-SVN: r167340
      Joseph Myers committed
    • common.opt (flag_stack_check): New Variable entry. · 5e471ea6
      	* common.opt (flag_stack_check): New Variable entry.
      	(fcompare-debug-second): Use Var.
      	* flags.h (flag_compare_debug, flag_stack_check): Remove.
      	* opts.c (flag_compare_debug): Remove.
      	(common_handle_option): Don't handle OPT_fcompare_debug_second.
      	Set opts->x_flag_stack_check for OPT_fstack_check_.
      	* toplev.c (flag_stack_check): Remove.
      
      ada:
      	* gcc-interface/misc.c (flag_compare_debug, flag_stack_check):
      	Undefine as macros then define as variables.
      	(gnat_post_options): Set variables from global_options.
      
      From-SVN: r167331
      Joseph Myers committed
  24. 29 Nov, 2010 1 commit
    • system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. · 71f3e391
      	* system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
      	Include <signal.h>, <sys/mman.h>, <sys/resource.h> and
      	<sys/times.h>.
      	(O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
      	Conditionally define.
      	(GET_ENVIRONMENT): Poison.
      	* configure.ac: Don't test for mincore.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* collect2-aix.c: Don't include <sys/mman.h>.
      	* collect2.c: Don't include <signal.h>.
      	(SIGCHLD): Don't define.
      	(prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
      	* config/alpha/alpha.c: Include "splay-tree.h" instead of
      	<splay-tree.h>.
      	* config/arm/arm.c (arm_target_help): Use getenv instead of
      	GET_ENVIRONMENT.
      	* config/avr/driver-avr.c: Don't include <stdlib.h>.
      	* config/frv/frv.c: Don't include <ctype.h>.
      	* config/host-darwin.c: Don't include <sys/mman.h>.
      	* config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
      	(MAP_FAILED): Don't define.
      	* config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
      	* config/host-solaris.c: Don't include <sys/mman.h>.
      	* config/i386/cygming.h: Don't include <stdio.h>.
      	* config/i386/driver-i386.c: Don't include <stdlib.h>.
      	* config/i386/host-cygwin.c: Don't include <sys/mman.h>.
      	* config/iq2000/iq2000.c: Don't include <signal.h>.
      	* config/m32c/m32c-pragma.c: Don't include <stdio.h>.
      	* config/m68hc11/m68hc11.c: Don't include <stdio.h>.
      	* config/mep/mep-pragma.c: Don't include <stdio.h>.
      	* config/microblaze/microblaze.c: Don't include <signal.h>.
      	* config/mips/mips.c: Don't include <signal.h>.
      	* config/rs6000/host-darwin.c: Don't include <signal.h>.
      	* cppdefault.c (cpp_relocated): Use getenv instead of
      	GET_ENVIRONMENT.
      	* defaults.h (GET_ENVIRONMENT): Don't define.
      	* et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
      	* gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
      	(SIGCHLD, MAP_FAILED, kill): Don't define.
      	(process_command): Use getenv instead of GET_ENVIRONMENT.
      	* genhooks.c: Don't include <string.h>.
      	* ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
      	<sys/types.h>.
      	(MAP_FAILED): Don't define.
      	* ggc-page.c Don't include <sys/mman.h>.
      	(MAP_ANONYMOUS, MAP_FAILED): Don't define.
      	* ggc-zone.c: Don't include <sys/mman.h>.
      	(MAP_ANONYMOUS, MAP_FAILED): Don't define.
      	* graph.c: Include "config.h" instead of <config.h>.
      	* incpath.c (add_env_var_paths): Use getenv instead of
      	GET_ENVIRONMENT.
      	* lto-wrapper.c: Don't include <errno.h>, <signal.h> or
      	"libiberty.h".
      	(SIGCHLD, kill): Don't define.
      	* mips-tfile.c: Don't include <signal.h>.
      	* opts.c: Don't include <signal.h> or <sys/resource.h>.
      	(print_specific_help): Use getenv instead of GET_ENVIRONMENT.
      	* passes.c: Don't include <signal.h>, <sys/resource.h> or
      	<sys/times.h>.
      	* sparseset.h: Don't include <assert.h>.
      	* timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
      	* tlink.c: Don't include "libiberty.h".
      	* toplev.c: Don't include <signal.h> or <sys/times.h>.
      	* tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
      	* tree-switch-conversion.c: Don't include <signal.h>.
      	* vmsdbgout.c: Don't include <errno.h> or <string.h>.
      
      c-family:
      	* c-opts.c (check_deps_environment_vars): Use getenv instead of
      	GET_ENVIRONMENT.
      	* c-pch.c (O_BINARY): Don't define here.
      	* c-pragma.h: Include "cpplib.h" instead of <cpplib.h>.
      
      fortran:
      	* gfortran.h (alloca): Don't include definitions.
      	(NULL): Don't define.
      
      java:
      	* boehm.c: Include "config.h" instead of <config.h>.
      	* builtins.c: Don't include <stdarg.h>.
      	* class.c: Don't include "stdio.h".
      	(O_BINARY): Don't define here.
      	* jcf-depend.c: Don't include <assert.h>.
      	(jcf_dependency_set_dep_file, jcf_dependency_init,
      	jcf_dependency_write): Use gcc_assert.
      	* jcf-io.c (O_BINARY): Don't define here.
      	* jcf-path.c: Don't include "tm.h".
      	(jcf_path_init): Use getenv instead of GET_ENVIRONMENT.
      	* resource.c: Don't include "stdio.h".
      	(O_BINARY): Don't define here.
      	* verify-impl.c: Don't include <stdio.h>.
      
      lto:
      	* lto-endian.h: Delete.
      	* lto-object.c: Don't include "libiberty.h".
      	(O_BINARY): Don't define.
      	* lto.c: Don't include "libiberty.h" or <sys/mman.h>.
      	(O_BINARY): Don't define.
      
      From-SVN: r167241
      Joseph Myers committed
  25. 26 Nov, 2010 1 commit
    • options.texi (Enum, EnumValue): Document new record types. · e6d4b984
      	* doc/options.texi (Enum, EnumValue): Document new record types.
      	(Enum): Document new option flag.
      	* opt-functions.awk
      	* optc-gen.awk: Handle enumerated option arguments.
      	* opth-gen.awk: Handle enumerated option arguments.
      	* opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
      	enum_value_to_arg): New.
      	(decode_cmdline_option): Handle enumerated arguments.
      	(read_cmdline_option): Handle CL_ERR_ENUM_ARG.
      	(set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
      	* opts.c (print_filtered_help, print_specific_help): Take
      	lang_mask arguments.
      	(print_filtered_help): Handle printing values of enumerated
      	options.  Print possible arguments for enumerated options.
      	(print_specific_help): Update call to print_filtered_help.
      	(common_handle_option): Update calls to print_specific_help.  Use
      	value rather than arg for OPT_fdiagnostics_show_location_.  Don't
      	handle OPT_ffp_contract_, OPT_fexcess_precision_,
      	OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
      	OPT_fira_region_ here.
      	* opts.h (enum cl_var_type): Add CLVC_ENUM.
      	(struct cl_option): Add var_enum.
      	(CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
      	struct cl_enum, cl_enums, cl_enums_count): New.
      	(CL_ERR_ENUM_ARG): Define.
      	(CL_ERR_NEGATIVE): Update value.
      	(enum_value_to_arg): Declare.
      	* common.opt (flag_ira_algorithm, flag_ira_region,
      	flag_fp_contract_mode, flag_excess_precision_cmdline,
      	default_visibility, flag_tls_default): Remove Variable entries.
      	(help_enum_printed): New Variable.
      	(fdiagnostics-show-location=): Use Enum.  Add associated
      	SourceInclude, Enum and EnumValue entries.
      	(fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
      	ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
      	associated Enum and EnumValue entries.
      
      po:
      	* exgettext: Handle UnknownError.
      
      From-SVN: r167190
      Joseph Myers committed
  26. 25 Nov, 2010 1 commit
    • target.def (supports_split_stack, [...]): Take gcc_options parameters. · d5fabb58
      	* target.def (supports_split_stack, except_unwind_info): Take
      	gcc_options parameters.
      	* targhooks.c (default_except_unwind_info,
      	dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
      	gcc_options parameters.
      	* targhooks.h (default_except_unwind_info,
      	dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
      	prototypes.
      	* doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
      	TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
      	Document that hooks must not be modified.
      	(TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
      	* doc/tm.texi: Regenerate.
      	* defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
      	&global_options to targetm.except_unwind_info.
      	* dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
      	dwarf2out_begin_prologue, dwarf2out_frame_init,
      	dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
      	&global_options to targetm.except_unwind_info.
      	* except.c (init_eh, finish_eh_generation,
      	gate_convert_to_eh_region_ranges,
      	output_one_function_exception_table): Pass &global_options to
      	targetm.except_unwind_info.
      	* expr.c (build_personality_function): Pass &global_options to
      	targetm.except_unwind_info.
      	* function.c (expand_function_end): Pass &global_options to
      	targetm.except_unwind_info.
      	* hooks.c (hook_bool_bool_gcc_optionsp_false): New.
      	* hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
      	* opts.c (finish_options): Pass opts to targetm.except_unwind_info
      	and targetm.supports_split_stack.  Remove assertions about opts
      	and opts_set.
      	(common_handle_option): Remove assertions about opts, opts_set and
      	dc.
      	* tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
      	&global_options to targetm.except_unwind_info.
      	* tree.c (build_common_builtin_nodes: Pass &global_options to
      	targetm.except_unwind_info.
      	* config/arm/arm.c (arm_except_unwind_info): Add gcc_options
      	parameter.
      	(arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
      	thumb1_expand_prologue, thumb1_output_function_prologue,
      	arm_unwind_emit, arm_output_fn_unwind): Update calls to
      	arm_except_unwind_info.
      	* config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
      	parameter.
      	* config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
      	parameter.
      	(ia64_output_function_prologue, ia64_add_bundle_selector_before,
      	ia64_reorg, ia64_asm_unwind_emit): Update calls to
      	ia64_except_unwind_info.
      	* config/pa/pa.c (pa_option_override): Pass &global_options to
      	targetm.except_unwind_info.
      	* config/picochip/picochip-protos.h (picochip_except_unwind_info):
      	Remove prototype.
      
      c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Pass &global_options to
      	targetm.except_unwind_info.
      
      From-SVN: r167145
      Joseph Myers committed
  27. 24 Nov, 2010 3 commits
    • common.opt (user_vect_verbosity_level): New Variable entry. · 7cd23050
      	* common.opt (user_vect_verbosity_level): New Variable entry.
      	(ftree-vectorizer-verbose=): Mark as UInteger.
      	* flag-types.h (enum vect_verbosity_levels): Move from enum
      	verbosity_levels in tree-vectorizer.h.
      	* opts.c: Don't include tree.h.
      	(vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
      	gcc_options parameter; take integer option argument.
      	(common_handle_option): Update call to vect_set_verbosity_level.
      	* tree-vectorizer.c (user_vect_verbosity_level): Remove.
      	(vect_set_verbosity_level): Move to opts.c.
      	(vect_verbosity_level, vect_print_dump_info): Update for change of
      	enum name.
      	* tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
      	(vect_print_dump_info): Update for change of enum name.
      	* tree.h (vect_set_verbosity_level): Remove.
      	* Makefile.in (opts.o): Update dependencies.
      
      From-SVN: r167113
      Joseph Myers committed
    • common.opt (initial_max_fld_align, [...]): New Variable entries. · 299404a1
      	* common.opt (initial_max_fld_align, flag_debug_asm,
      	flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
      	flag_print_asm_name, graph_dump_format, help_printed,
      	help_columns, flag_opts_finished): New Variable entries.
      	(fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
      	frandom-seed=): Mark deferred.
      	(fsched-verbose=): Use UInteger and Var.
      	* flags.h (set_struct_debug_option, flag_print_asm_name,
      	rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
      	graph_dump_format): Don't declare here.
      	* haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
      	* opts-global.c: Include dbgcnt.h and debug.h.
      	(decode_options): Pass location to finish_options.
      	(handle_common_deferred_options): Check flag_dump_all_passed.
      	Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
      	OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
      	OPT_fstack_limit.
      	* opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
      	(set_struct_debug_option): Add location_t parameter.  Update
      	recursive call.  Use error_at.
      	(default_options_optimization): Use error_at.
      	(finish_options): Add location_t parameter.  Use
      	opts->x_flag_opts_finished instead of first_time_p.  Use
      	opts->x_optimize instead of optimize.  Use error_at.  Pass
      	location to inform.
      	(print_filtered_help): Use opts->x_help_printed to track what
      	options have been printed.
      	(print_specific_help): Use opts->x_help_columns to track number of
      	columns.
      	(common_handle_option): Pass locations and gcc_options pointers to
      	more functions.  Use warning_at instead of fnotice and warning.
      	Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
      	OPT_fdebug_prefix_map_.  Use error_at.  Set
      	opts->x_initial_max_fld_align; don't set maximum_field_alignment.
      	Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
      	OPT_fsched_verbose_.
      	(handle_param): Add location_r parameter.  Use error_at.
      	(set_debug_level): Add location_r parameter.  Use error_at and
      	warning_at.
      	(setup_core_dumping): Add diagnostic_context parameter.
      	(decode_d_option): Add gcc_options, location_t and
      	diagnostic_context parameters and use them instead of global
      	state.  Use warning_at.
      	(enable_warning_as_error): Use error_at.
      	* opts.h (finish_options): Update prototype.
      	(set_struct_debug_option): Declare here.
      	* rtl.h (fix_sched_param): Remove.
      	* stor-layout.c (initial_max_fld_align): Remove.
      	* toplev.c (rtl_dump_and_exit, flag_print_asm_name,
      	graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
      	(process_options): Set maximum_field_alignment.
      	* tree.h (initial_max_fld_align) Don't declare here.
      	* Makefile.in (opts.o, opts-global.o): Update dependencies.
      
      c-family:
      	* c-opts.c (c_common_handle_option): Pass location to
      	set_struct_debug_option.
      
      testsuite:
      	* gcc.dg/opts-5.c: New test.
      
      From-SVN: r167106
      Joseph Myers committed
    • flag-types.h (struct visibility_flags): Don't declare here. · c98cd5bf
      	* flag-types.h (struct visibility_flags): Don't declare here.
      	* flags.h (strip_off_ending, fast_math_flags_set_p,
      	fast_math_flags_struct_set_p): Declare here.
      	(visibility_options): Don't declare here.
      	* opts-common.c (option_enabled, get_option_state): Move from
      	opts.c.
      	* opts-global.c: Include diagnostic.h instead of
      	diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
      	and toplev.h.
      	(const_char_p, ignored_options, in_fnames, num_in_fnames,
      	write_langs, complain_wrong_lang, postpone_unknown_option_warning,
      	print_ignored_options, unknown_option_callback,
      	post_handling_callback, lang_handle_option, add_input_filename,
      	read_cmdline_options, initial_lang_mask, init_options_once,
      	decode_cmdline_options_to_array_default_mask,
      	set_default_handlers, decode_options): Move from opts.c.
      	(print_ignored_options): Use warning_at instead of saving and
      	restoring input_location.
      	* opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
      	instead of expr.h.  Don't include langhooks.h, except.h or
      	lto-streamer.h.  Add more comments on includes.
      	(strip_off_ending, setup_core_dumping, decode_d_option): Move from
      	toplev.c.
      	(visibility_options): Move to c-family/c-common.c.
      	(const_char_p, ignored_options, in_fnames, num_in_fnames,
      	write_langs, complain_wrong_lang, postpone_unknown_option_warning,
      	print_ignored_options, unknown_option_callback,
      	post_handling_callback, lang_handle_option, add_input_filename,
      	read_cmdline_options, initial_lang_mask, init_options_once,
      	decode_cmdline_options_to_array_default_mask,
      	set_default_handlers, decode_options): Move to opts-global.c.
      	(target_handle_option, default_options_optimization,
      	finish_options, common_handle_option): Remove static.
      	(option_enabled, get_option_state): Move to opts-common.c.
      	* opts.h (common_handle_option, target_handle_option,
      	finish_options, default_options_optimization): Declare.
      	* toplev.c: Don't include <signal.h> or <sys/resource.h>.
      	(setup_core_dumping, strip_off_ending, decode_d_option): Move to
      	opts.c.
      	* toplev.h (strip_off_ending, decode_d_option,
      	fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
      	declare here.
      	* Makefile.in (opts.o, opts-global.o): Update dependencies.
      
      c-family:
      	* c-common.c (visibility_options): Move from ../opts.c.
      	* c-common.h (struct visibility_flags, visibility_options):
      	Declare here.
      	* c-opts.c (finish_options): Rename to c_finish_options.
      	(c_common_init): Update call to finish_options.
      
      From-SVN: r167105
      Joseph Myers committed
  28. 22 Nov, 2010 1 commit
    • common.opt (exit_after_options, [...]): New Variable entries. · 0576d21f
      	* common.opt (exit_after_options, write_symbols, debug_info_level,
      	use_gnu_debug_info_extensions): New Variable entries.
      	(fprofile-dir=): Use Var.
      	* flag-types.h (enum debug_info_level): Rename to enum
      	debug_info_levels.
      	* flags.h (write_symbols, debug_info_level,
      	use_gnu_debug_info_extensions): Remove declarations.
      	* opts.c (exit_after_options, write_symbols, debug_info_level):
      	Remove.
      	(set_struct_debug_option): Make static variables const.
      	(use_gnu_debug_info_extensions): Remove.
      	(set_debug_level, print_filtered_help, print_specific_help,
      	fast_math_flags_set_p): Take gcc_options parameters and use them
      	in place of global variables.
      	(print_filtered_help): Make new_help non-static.
      	(print_specific_help): Update call to print_filtered_help.
      	(common_handle_option): Update calls to print_specific_help.  Use
      	gcc_options structure for more settings.  Make --help table
      	const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
      	set_debug_level.
      	* toplev.c (profile_data_prefix): Remove.
      	* toplev.h (profile_data_prefix, exit_after_options): Remove
      	declarations.
      	(fast_math_flags_set_p): Update prototype.
      	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
      	Update call to fast_math_flags_set_p.
      
      objc:
      	* objc-act.c (write_symbols): Don't declare here.
      
      From-SVN: r167064
      Joseph Myers committed
  29. 19 Nov, 2010 3 commits
    • common.opt (debug_struct_ordinary, [...]): New Variable entries. · 69ccdddb
      	* common.opt (debug_struct_ordinary, debug_struct_generic): New
      	Variable entries.
      	* dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
      	should_emit_struct_debug): Move from opts.c.
      	* flag-types.h (enum debug_struct_file): Move from opts.c.
      	* flags.h (should_emit_struct_debug): Remove.
      	(base_of_path): Declare.
      	(set_struct_debug_option): Add gcc_options parameter.
      	* optc-gen.awk, opth-gen.awk: Handle array variables.
      	* opts.c (enum debug_struct_file, debug_struct_ordinary,
      	debug_struct_generic): Remove.
      	(set_struct_debug_option): Add gcc_options parameter.
      	(base_of_path): Remove static.
      	(main_input_basename, main_input_baselength, matches_main_base,
      	dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
      	Remove.
      	* toplev.c (main_input_basename, main_input_baselength): Define
      	here.
      	* toplev.h (main_input_basename, main_input_baselength): Declare
      	here.
      
      c-family:
      	* c-opts.c (c_common_handle_option): Update calls to
      	set_struct_debug_option.
      
      From-SVN: r166944
      Joseph Myers committed
    • common.opt (flag_instrument_functions_exclude_functions, [...]): New Variable definitions. · 6a1f6c9c
      	* common.opt (flag_instrument_functions_exclude_functions,
      	flag_instrument_functions_exclude_files): New Variable
      	definitions.
      	* flags.h (flag_instrument_functions_exclude_p): Don't declare.
      	* gimplify.c (char_p): Declare type and vectors.
      	(flag_instrument_functions_exclude_p): Moved from opts.c.  Make
      	static.
      	* opts.c (flag_instrument_functions_exclude_functions,
      	flag_instrument_functions_exclude_files): Remove.
      	(add_comma_separated_to_vector): Take void **.
      	(flag_instrument_functions_exclude_p): Move to gimplify.c.
      	(common_handle_option): Use options structure for
      	-finstrument-functions-exclude- options.
      
      From-SVN: r166943
      Joseph Myers committed
    • options.texi (Var): Document effects of Defer. · 21bf1558
      	* doc/options.texi (Var): Document effects of Defer.
      	(Defer): Document.
      	* opt-functions.awk (var_type, var_set): Handle deferred options.
      	* opts-common.c (set_option): Handle CLVC_DEFER.
      	* common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
      	fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
      	fstack-limit-symbol=): Mark as deferred.
      	* opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
      	plugin.h.
      	(print_filtered_help): Don't report state of CLVC_DEFER options.
      	(common_handle_option): Move code for OPT_fcall_used_,
      	OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
      	OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
      	OPT_fstack_limit_symbol_ to opts-global.c.
      	(option_enabled, get_option_state): Handle CLVC_DEFER.
      	* opts.h: Include vec.h.
      	(enum cl_var_type): Add CLVC_DEFER.
      	(cl_deferred_option): Define type and vectors.
      	(handle_common_deferred_options): Declare.
      	* opts-global.c: New.
      	* toplev.c (toplev_main): Call handle_common_deferred_options
      	* Makefile.in (OPTS_H): Include $(VEC_H).
      	(OBJS-common): Include opts-global.o.
      	(opts.o): Update dependencies.
      	(opts-global.o): Add dependencies.
      
      From-SVN: r166942
      Joseph Myers committed
  30. 17 Nov, 2010 1 commit
  31. 12 Nov, 2010 3 commits
    • opts-common.c (control_warning_option): New. · c5fa0890
      	* opts-common.c (control_warning_option): New.
      	* opts.c (set_default_handlers): New.
      	(decode_options): Use set_default_handlers and
      	control_warning_option.
      	(common_handle_option): Update call to enable_warning_as_error.
      	(enable_warning_as_error): Take gcc_options parameters.  Use
      	control_warning_option.
      	* opts.h (set_default_handlers, control_warning_option): Declare.
      
      c-family:
      	* c-common.h (c_family_lang_mask): Declare.
      	* c-opts.c (c_family_lang_mask): Make extern.
      	* c-pragma.c (handle_pragma_diagnostic): Use
      	control_warning_option.
      
      testsuite:
      	* gcc.dg/pragma-diag-2.c: New test.
      
      From-SVN: r166689
      Joseph Myers committed
    • Makefile.in (OPTS_H): Define. · a4d8c676
      	* Makefile.in (OPTS_H): Define.
      	(c-decl.o, c-family/c-common.o, c-family/c-opts.o,
      	c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
      	cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
      	opts-common.o, toplev.o, passes.o, matrix-reorg.o,
      	ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
      	* gcc.c (driver_handle_option): Take location_t parameter.
      	(process_command, do_self_spec): Update calls to
      	read_cmdline_option.
      	* langhooks-def.h (lhd_handle_option): Take location_t parameter.
      	* langhooks.c (lhd_handle_option): Take location_t parameter.
      	* langhooks.h (handle_option): Take location_t parameter.
      	* lto-opts.c (lto_reissue_options): Update call to set_option.
      	* opts-common.c (handle_option): Make static.  Take location_t
      	parameter and pass it to other functions.
      	(handle_generated_option): Take location_t parameter and pass it
      	to other functions.
      	(read_cmdline_option): Take location_t parameter and pass it to
      	other functions.  Use warning_at and error_at.
      	(set_option): Take location_t parameter and pass it to other
      	functions.
      	* opts.c (common_handle_option): Take location_t parameter and
      	pass it to other functions.
      	(enable_warning_as_error): Make static.  Take location_t parameter
      	and pass it to other functions.
      	(lang_handle_option): Take location_t parameter and pass it to
      	other functions.
      	(target_handle_option): Take location_t parameter.
      	(read_cmdline_options, maybe_default_option,
      	maybe_default_options, default_options_optimization,
      	decode_options): Take location_t parameter and pass it to other
      	functions.
      	* opts.h: Include input.h.
      	(struct cl_option_handler_func, decode_options, set_option,
      	handle_generated_option, read_cmdline_option): Take location_t
      	parameters.
      	(handle_option, enable_warning_as_error): Remove.
      	* toplev.c (toplev_main): Update call to decode_options.
      
      ada:
      	* gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTS_H).
      	* gcc-interface/misc.c (gnat_handle_option): Take location_t
      	parameter.
      
      c-family:
      	* c-common.c (parse_optimize_options): Update call to
      	decode_options.
      	* c-common.h (c_common_handle_option): Update prototype.
      	* c-opts.c (c_common_handle_option): Take location_t parameter and
      	pass it to other functions.
      
      cp:
      	* Make-lang.in (g++spec.o): Use $(OPTS_H).
      
      fortran:
      	* Make-lang.in (gfortranspec.o): Use $(OPTS_H).
      	* gfortran.h (gfc_handle_option): Take location_t parameter.
      	* options.c (gfc_handle_option): Take location_t parameter.
      
      java:
      	* Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H).
      	* lang.c (java_handle_option): Take location_t parameter.
      
      lto:
      	* Make-lang.in (lto/lto.o): Use $(OPTS_H).
      	* lto-lang.c (lto_handle_option): Take location_t parameter.
      
      From-SVN: r166688
      Joseph Myers committed
    • re PR c/44782 (implement -ferror-limit=) · 3a789837
      gcc/
      	PR c/44782
      	* common.opt (fmax-errors=): New option.
      	* opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
      	* diagnostic.h (struct diagnostic_context): Add max_errors field.
      	* diagnostic.c (diagnostic_initialize): Initialize it.
      	(diagnostic_action_after_output): Exit if more than max_errors
      	have been output.
      	* doc/invoke.texi (Warning Options): Add -fmax-errors.
      	(-fmax-errors): Document.
      
      gcc/fortran/
      	PR c/44782
      	* options.c (gfc_post_options): Initialize gfc_option.max_errors.
      	(gfc_handle_option) [OPT_fmax_errors_]: Remove.
      	* lang.opt (fmax-errors=): Remove.
      
      gcc/testsuite/
      	PR c/44782
      	* c-c++-common/fmax-errors.c: New test.
      
      From-SVN: r166644
      Nathan Froyd committed
  32. 11 Nov, 2010 2 commits
    • opts.c (finish_options): Do not error on -flto-partition alone. · a9c64730
      	* opts.c (finish_options): Do not error on -flto-partition alone.
      	* options.c (gfc_post_options): Remove flag_whopr.
      
      From-SVN: r166632
      Jan Hubicka committed
    • invoke.texi (-fwhopr): Merge into -flto section. · 014d92e1
      	* doc/invoke.texi (-fwhopr): Merge into -flto section.
      	(-flto-partition): Document none.
      	* gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
      	* lto-wrapper.c: Update comment.
      	(run_gcc): Update LTO option parsing.
      	* opts.c (finish_options): add support -flto-partition=none
      	(common_handle_option): Remove fwhopr.
      	* common.opt: Turn fwhopr into flto.
      	* collect2.c (main): Update option handling.
      	* cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
      	* ipa-split.c (execute_split_functions): Remove flag_whopr.
      	* ipa.c (function_and_variable_visibility): Remove flag_whopr.
      	* ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
      	* varpool.c (decide_is_variable_needed): Remove flag_whopr.
      	
      	* gcc.dg/20081223-1.c: Update LTO options.
      	* gcc.dg/lto/20090206-1_0.c: Update LTO options.
      	* gcc.dg/lto/20081118_0.c: Update LTO options.
      	* gcc.dg/lto/ipareference_0.c: Update LTO options.
      	* gcc.dg/lto/20100423-2_0.c: Update LTO options.
      	* gcc.dg/lto/20081201-1_0.c: Update LTO options.
      	* gcc.dg/lto/ipacp_0.c: Update LTO options.
      	* gcc.dg/lto/20090116_0.c: Update LTO options.
      	* gcc.dg/lto/20091015-1_0.c: Update LTO options.
      	* gcc.dg/lto/20090126-2_0.c: Update LTO options.
      	* gcc.dg/lto/20081202-2_0.c: Update LTO options.
      	* gcc.dg/lto/20081204-1_0.c: Update LTO options.
      	* gcc.dg/lto/const-uniq_0.c: Update LTO options.
      	* gcc.dg/lto/20081224_0.c: Update LTO options.
      	* gcc.dg/lto/20090219_0.c: Update LTO options.
      	* gcc.dg/lto/ipareference2_0.c: Update LTO options.
      	* gcc.dg/lto/20090206-2_0.c: Update LTO options.
      	* gcc.dg/lto/20081115_0.c: Update LTO options.
      	* gcc.dg/lto/20081201-2_0.c: Update LTO options.
      	* gcc.dg/lto/20081120-2_0.c: Update LTO options.
      	* gcc.dg/lto/materialize-1_0.c: Update LTO options.
      	* gcc.dg/lto/20090126-1_0.c: Update LTO options.
      	* gcc.dg/lto/20081202-1_0.c: Update LTO options.
      	* gcc.dg/lto/noreturn-1_0.c: Update LTO options.
      	* g++.dg/20090107-1.C: Update LTO options.
      	* g++.dg/lto/pr45679-2_0.C: Update LTO options.
      	* g++.dg/lto/20081123_0.C: Update LTO options.
      	* g++.dg/lto/20090313_0.C: Update LTO options.
      	* g++.dg/lto/20081125_0.C: Update LTO options.
      	* g++.dg/lto/20081109-1_0.C: Update LTO options.
      	* g++.dg/lto/20081219_0.C: Update LTO options.
      	* g++.dg/lto/20100724-1_0.C: Update LTO options.
      	* g++.dg/lto/20081204-1_0.C: Update LTO options.
      	* g++.dg/lto/20090303_0.C: Update LTO options.
      	* g++.dg/lto/20100723-1_0.C: Update LTO options.
      	* g++.dg/lto/pr45679-1_0.C: Update LTO options.
      	* g++.dg/lto/20090128_0.C: Update LTO options.
      	* g++.dg/lto/20081204-2_0.C: Update LTO options.
      	* g++.dg/lto/20090302_0.C: Update LTO options.
      	* g++.dg/lto/20081119-1_0.C: Update LTO options.
      	* g++.dg/lto/20081118_0.C: Update LTO options.
      	* g++.dg/20090121-1.C: Update LTO options.
      	* objc.dg/lto/lto.exp: Update LTO options.
      	* lib/lto.exp: Update LTO options.
      	* lib/gcc-dg.exp: Update LTO options.
      	* lib/c-torture.exp: Update LTO options.
      	* obj-c++.dg/lto/lto.exp: Update LTO options.
      
      From-SVN: r166625
      Jan Hubicka committed