1. 13 Oct, 2008 1 commit
  2. 11 Oct, 2008 1 commit
    • rs6000.c (rs6000_parse_fpu_option): Interpret -mfpu options. · 0bb7b92e
      2008-10-11  Michael J. Eager  <eager@eagercon.com>
      
              * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
              -mfpu options.
              (rs6000_handle_option): Process -mfpu options.
              * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
              (enum fpu_type_t): New.
              * config/rs6000/rs6000.md (attr fp_type): New.
              Include xfpu.md.
              (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
              fp_type.
              (floatsisf2): Remove TARGET_SINGLE_FPU condition.
              (floatdidf2): Add TARGET_SINGLE_FPU condition.
              * config/rs6000/rs6000.opt (-mfpu): New.
              (-mxilinx-fpu): New.
              * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
              * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
              * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
              * gcc/config.gcc: powerpc-xilinx-eabi target: New.
              * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
      
      From-SVN: r141059
      Michael J. Eager committed
  3. 10 Oct, 2008 1 commit
  4. 06 Oct, 2008 2 commits
    • invoke.texi: List r1x000 family under the -march MIPS option. · 7a3446ec
      gcc/
      2008-10-06  Joshua Kinard  <kumba@gentoo.org>
      
      	* doc/invoke.texi: List r1x000 family under the -march MIPS option.
      	* config/mips/mips.h (PROCESSOR_R10000): New processor_type.
      	* config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
      	r14000 and r16000.
      	(mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
      	(mips_issue_rate): Handle PROCESSOR_R10000.
      	* config/mips/mips.md (cpu): Add r10000.
      	Include r10000.md.
      	* config/mips/10000.md: New file.
      
      From-SVN: r140913
      Joshua Kinard committed
    • re PR middle-end/37535 (gcc/libgcc2.c:404: internal compiler error: Floating point exception) · 3517d3a0
      2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR middle-end/37535
      
      	* ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
      	(mark_ref_live, mark_ref_dead): Use them.
      	(def_conflicts_with_inputs_p): Remove.
      	(mark_early_clobbers): New function.
      	(process_bb_node_lives): Call preprocess_constraints and
      	mark_early_clobbers.
      
      	* doc/rtx.texi (clobber): Change how RA deals with clobbers.
      
      From-SVN: r140906
      Vladimir Makarov committed
  5. 05 Oct, 2008 1 commit
  6. 30 Sep, 2008 1 commit
    • i386.opt: Add msse2avx. · bd459cb6
      2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/i386/i386.opt: Add msse2avx.
      
      	* config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
      	* config/i386/linux64.h (ASM_SPEC): Likewise.
      
      	* doc/invoke.texi: Document -msse2avx.
      
      From-SVN: r140774
      H.J. Lu committed
  7. 29 Sep, 2008 1 commit
    • predicates.md (easy_fp_constant): Single FP consts are easy. · 696e45ba
              * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
              are easy.
              * config/rs6000/rs6000.c (rs6000_override_options): Move
              rs6000_init_hard_regno_mode_ok after all options changed.
              Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
              (rs6000_handle_option): Process -msingle-float, -mdouble-float,
              -msimple-fpu flags.  Add warning messages if single FP not configured.
              (rs6000_file_start): Output gnu_attribute for single-float.
              (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
              (rs6000_legitimize_address): Likewise.
              (rs6000_legitimize_reload_address): Likewise.
              (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
              TARGET_SINGLE_FLOAT.
              (function_arg_advance): Likewise (partial conversion).
              (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
              (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
              TARGET_SINGLE_FLOAT.
              (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
              (rs6000_emit_prologue): Likewise.
              (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
              TARGET_SINGLE_FLOAT.
              (rs6000_libcall_value): Likewise.
              * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
              (TARGET_DOUBLE_FLOAT): New default to 1
              (TARGET_SIMPLE_FPU): New default to 0
              (TARGET_SINGLE_FPU): New default to 0
              (TARGET_SINGLE_FLOAT_MODE): New.
              (TARGET_DOUBLE_FLOAT_MODE): New.
              * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
              TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
              UNITS_PER_FP_WORD
              * config/rs6000/rs6000.md (define_mode_iterator): Condition on
              TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
              (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
              copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
              nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
              muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
              movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
              floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
              *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
              fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
              rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
              floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
              movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
              extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
              abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
              cmptf_internal1, *cmptf_internal2): Condition on
              TARGET_DOUBLE_FLOAT.
              (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
              mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
              *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
              btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
              floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
              *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
              TARGET_SINGLE_FLOAT.
              (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
              * config/rs6000/rs6000.opt (-msingle-float): New.
              (-mdouble-float): New.
              (-msimple-fpu): New.
              * doc/invoke.texi (RS/6000 and PowerPC Options): Add
              -msingle-float, -mdouble-float, -msimple-fpu options.
              * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
              _SOFT_DOUBLE for -msingle-float.
              * config.gcc: New config for target=powerpc-xilinx-eabi.
      
      From-SVN: r140757
      Michael J. Eager committed
  8. 27 Sep, 2008 1 commit
  9. 26 Sep, 2008 1 commit
  10. 24 Sep, 2008 2 commits
    • Revert rs6000 change. · cf8e1455
      From-SVN: r140646
      David Edelsohn committed
    • predicates.md (easy_fp_constant): Single FP consts are easy. · 2a013f05
      2008-09-24  Michael J. Eager  <eager@eagercon.com>
      
              * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
              are easy.
              * config/rs6000/rs6000.c (rs6000_override_options): Move
              rs6000_init_hard_regno_mode_ok after all options changed.
              Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
              (rs6000_handle_option): Process -msingle-float, -mdouble-float,
              -msimple-fpu flags.  Add warning messages if single FP not configured.
              (rs6000_file_start): Output gnu_attribute for single-float.
              (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
              (rs6000_legitimize_address): Likewise.
              (rs6000_legitimize_reload_address): Likewise.
              (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
              TARGET_SINGLE_FLOAT.
              (function_arg_advance): Likewise.
              (function_arg): Likewise.
              (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
              (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
              TARGET_SINGLE_FLOAT.
              (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
              (rs6000_emit_prologue): Likewise.
              (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
              TARGET_SINGLE_FLOAT.
              (rs6000_libcall_value): Likewise.
              * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
              (TARGET_DOUBLE_FLOAT): New default to 1
              (TARGET_SIMPLE_FPU): New default to 0
              (TARGET_SINGLE_FPU): New default to 0
              (TARGET_SINGLE_FLOAT_MODE): New.
              (TARGET_DOUBLE_FLOAT_MODE): New.
              * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
              TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
              UNITS_PER_FP_WORD
              * config/rs6000/rs6000.md (define_mode_iterator): Condition on
              TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
              (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
              copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
              nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
              muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
              movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
              floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
              *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
              fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
              rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
              floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
              movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
              extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
              abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
              cmptf_internal1, *cmptf_internal2): Condition on
              TARGET_DOUBLE_FLOAT.
              (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
              mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
              *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
              btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
              floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
              *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
              TARGET_SINGLE_FLOAT.
              (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
              * config/rs6000/rs6000.opt (-msingle-float): New.
              (-mdouble-float): New.
              (-msimple-fpu): New.
              * doc/invoke.texi (RS/6000 and PowerPC Options): Add
              -msingle-float, -mdouble-float, -msimple-fpu options.
              * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
              _SOFT_DOUBLE for -msingle-float.
              * config.gcc: New config for target=powerpc-xilinx-eabi.
      
      From-SVN: r140632
      Michael J. Eager committed
  11. 23 Sep, 2008 3 commits
  12. 21 Sep, 2008 1 commit
    • gccint.texi: Include generic.texi and gimple.texi. · e6c99067
      2008-09-21  Diego Novillo  <dnovillo@google.com>
      
      	* doc/gccint.texi: Include generic.texi and gimple.texi.
      	Re-order index.
      	* doc/tree-ssa.texi (GENERIC): Move to generic.texi.
      	(GIMPLE): Move to gimple.texi.
      	(Annotations): Remove references to to stmt_ann_t and
      	ssa_name_ann_t.
      	(SSA Operands): Rename from 'Statement Operands'.
      	* doc/generic.texi: New.
      	* doc/gimple.texi: New.
      	* Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and
      	gimple.texi.
      	* Makefile.in (TEXI_GCCINT_FILES):
      	* gimple.c (gimple_copy_call_skip_args): Rename from
      	giple_copy_call_skip_args.  Update all users.
      	* doc/gimple.texi (gimple_copy_call_skip_args): Document.
      
      From-SVN: r140527
      Diego Novillo committed
  13. 20 Sep, 2008 1 commit
    • tm.texi (TARGET_IRA_COVER_CLASSES): Define. · 76e68dca
      gcc/
      	* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
      	(IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
      	* target.h (gcc_target): Add ira_cover_classes.
      	* ira.c: Remove IRA_COVER_CLASSES guards.
      	(setup_cover_and_important_classes): Use targetm.ira_cover_classes
      	instead of IRA_COVER_CLASSES.
      	(setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
      	(setup_class_translate): Likewise.
      	(setup_reg_class_intersect_union): Likewise.
      	(find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
      	test of targetm.ira_cover_classes.
      	* opts.c (decode_options): Use targetm.ira_cover_classes instead
      	of IRA_COVER_CLASSES.
      	* target-def.h (TARGET_IRA_COVER_CLASSES): Define.
      	(TARGET_INITIALIZER): Include it.
      	* targhooks.h (default_ira_cover_classes): Declare.
      	* targhooks.c (default_ira_cover_classes): New function.
      
      From-SVN: r140512
      Richard Sandiford committed
  14. 18 Sep, 2008 2 commits
    • cpplib.h (struct cpp_options): Add new boolean flag warn_builtin_macro_redefined. · c047ce93
      	* include/cpplib.h (struct cpp_options): Add new boolean flag
      	warn_builtin_macro_redefined.
      	* init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
      	* (struct builtin_operator): Split out from previous struct builtin,
      	enhance extra const correctness.
      	* (struct builtin_macro): Split out from previous struct builtin, add
      	new always_warn_if_redefined flag, enhance const correctness.
      	* (mark_named_operators): Use struct builtin_operator.
      	* (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
      	to builtins selectively.
      	* macro.c (warn_of_redefinition): Return false if a builtin macro
      	is not flagged with NODE_WARN.
      
      	* c-opts.c (c_common_handle_option): Add handling for
      	-Wbuiltin-macro-redefined command line option.
      	* c.opt: Added builtin-macro-redefined option.
      	* doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
      	documentation.
      
      	* gcc.dg/builtin-redefine.c: New.
      
      From-SVN: r140461
      Simon Baldwin committed
    • invoke.texi: Document -mhard-dfp, -mno-hard-dfp. · 59a1bff3
      2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
      	Mention -march=z9-109, z9-ec and z10.
      
      From-SVN: r140447
      Andreas Krebbel committed
  15. 15 Sep, 2008 1 commit
  16. 14 Sep, 2008 1 commit
  17. 13 Sep, 2008 1 commit
  18. 09 Sep, 2008 1 commit
  19. 06 Sep, 2008 2 commits
    • 2008-xx-xx Richard Sandiford <rdsandiford@goolemail.com> Peter Fuerst <post@pfrst.de> · 4d210b07
      gcc/
      2008-xx-xx  Richard Sandiford  <rdsandiford@goolemail.com>
      	    Peter Fuerst  <post@pfrst.de>
      
      	* doc/invoke.texi: Document -mr10k-cache-barrier=.
      	* doc/extend.texi: Document __builtin_mips_cache.
      	* config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
      	* config/mips/mips.opt (mr10k-cache-barrier=): New option.
      	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
      	__GCC_HAVE_BUILTIN_MIPS_CACHE.
      	(TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
      	* config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
      	(set_push_mips_isas): New variable.
      	(mips_r10k_cache_barrier): New variable.
      	(cache): New availability predicate.
      	(mips_builtins): Add an entry for __builtin_mips_cache.
      	(mips_build_cvpointer_type): New function.
      	(MIPS_ATYPE_CVPOINTER): New macro.
      	(mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
      	mode is VOIDmode.
      	(r10k_simplified_address_p, r10k_simplify_address)
      	(r10k_uncached_address_p, r10k_safe_address_p)
      	(r10k_needs_protection_p_1, r10k_needs_protection_p_store)
      	(r10k_needs_protection_p_call, r10k_needs_protection_p)
      	(r10k_insert_cache_barriers): New functions.
      	(mips_reorg_process_insns): Delete cache barriers after a
      	branch-likely instruction.
      	(mips_reorg): Call r10k_insert_cache_barriers.
      	(mips_handle_option): Handle OPT_mr10k_cache_barrier_.
      	* config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
      	(UNSPEC_R10K_CACHE_BARRIER): Likewise.
      	(mips_cache, r10k_cache_barrier): New define_insns.
      
      gcc/testsuite/
      	* gcc.target/mips/mips.exp (dg-mips-options): Make
      	-mr10k-cache-barrier=* imply -mips3 or above.
      	* gcc.target/mips/cache-1.c: New test.
      	* gcc.target/mips/r10k-cache-barrier-1.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-2.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-3.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-4.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-5.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-6.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-7.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-8.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-9.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-10.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-11.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-12.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-13.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
      	* gcc.target/mips/r10k-cache-barrier-15.c: Likewise.
      
      From-SVN: r140055
      Richard Sandiford committed
    • tm.texi (IRA_COVER_CLASSES): Fix a typo. · af9253a1
      2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
      
      From-SVN: r140053
      Vladimir Makarov committed
  20. 05 Sep, 2008 2 commits
    • Improved branch hints, safe hints, and scheduling. · 9dcc2e87
      	* haifa-sched.c (sched_emit_insn) : Define.
      	* sched-int.h (sched_emit_insn) : Add prototype.
      	* doc/invoke.texi (-mdual-nops, -mhint-max-nops,
      	-mhint-max-distance -msafe-hints) : Document.
      	* config/spu/spu.c (spu_flag_var_tracking): New.
      	(TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
      	TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
      	TARGET_ASM_FILE_START): Define.
      	(TARGET_SCHED_ADJUST_PRIORITY): Remove.
      	(STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
      	(spu_emit_branch_hint): Add blocks argument.
      	(insert_branch_hints, insert_nops): Remove.
      	(pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
      	uses_ls_unit, spu_sched_init_global, spu_sched_init,
      	spu_sched_reorder, asm_file_start): New functions.
      	(clock_var, spu_sched_length, pipe0_clock,
      	pipe1_clock, prev_clock_var, prev_priority,
      	spu_ls_first, prev_ls_clock): New static variables.
      	* config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
      	* config/spu.md (iprefetch): Add operand, make it clobber MEM.
      	(nopn_nv): Add a non-volatile version of nop.
      	* config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
      	-mhint-max-distance, -msafe-hints): New options.
      
      From-SVN: r140047
      Trevor Smigiel committed
    • install.texi (--enable-reduced-reflection): Document new option. · c07cd2c7
      2008-09-05  David Daney  <ddaney@avtrex.com>
      
      	* doc/install.texi (--enable-reduced-reflection): Document new option.
      
      
      2008-09-05  David Daney  <ddaney@avtrex.com>
      
      	* configure.ac (reduced-reflection): New AC_ARG_ENABLE.
      	(build_libgcj_reduced_reflection): New variable.
      	(BUILD_LIBGCJ_REDUCED_REFLECTION): New AM_CONDITIONAL.
      	* Makefile.am (LIBGCJ_REDUCED_REFLECTION_FLAGS): New variable.
      	(%.lo: %.list): Add LIBGCJ_REDUCED_REFLECTION_FLAGS to compile
      	command.
      	(java/util/concurrent.lo, java/util/concurrent/atomic.lo,
      	java/util/concurrent/locks.lo): Override
      	LIBGCJ_REDUCED_REFLECTION_FLAGS.
      	* Makefile.in, include/Makefile.in, testsuite/Makefile.in,
      	gcj/Makefile.in, configure: Regenerate.
      
      From-SVN: r140038
      David Daney committed
  21. 04 Sep, 2008 1 commit
    • ira-conflicts.c (process_regs_for_copy): Check insn to check that the cost is… · 4cda38d5
      ira-conflicts.c (process_regs_for_copy): Check insn to check that the cost is already taken into account in ira-costs.c
      
      2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-conflicts.c (process_regs_for_copy): Check insn to check
      	that the cost is already taken into account in ira-costs.c
      
      	* ira-int.h (ira_debug_copy, ira_debug_copies): New.
      
      	* ira-build.c (print_copy, print_copies, ira_debug_copy,
      	ira_debug_copies): New.
      	(ira_bulid): Call print_copies.
      	
      	* doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
      
      From-SVN: r140014
      Vladimir Makarov committed
  22. 03 Sep, 2008 1 commit
    • Add picoChip port. · 358da97e
      2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
      
      	Add picoChip port.
      	* MAINTAINERS: Add picoChip maintainers.
      	libgcc/
      	* config.host: Add picochip-*-*.
      	gcc/
      	* doc/extend.texi: Document picoChip builtin functions.
      	* doc/invoke.texi: Document picoChip options.
      	* doc/contrib.texi: Add picoChip contribution.
      	* doc/md.texi: Document picoChip constraints.
      	* config.gcc: Add picochip-*-*.
      	* config/picochip/: Add new port.
      
      From-SVN: r139932
      Hari Sandanagobalane committed
  23. 02 Sep, 2008 2 commits
    • backport: configure: Regenerate. · f8bf9252
      2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
      	    Tobias Grosser  <grosser@fim.uni-passau.de>
      	    Jan Sjodin  <jan.sjodin@amd.com>
      	    Harsha Jagasia  <harsha.jagasia@amd.com>
      	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
      	    Konrad Trifunovic  <konrad.trifunovic@inria.fr>
      	    Adrien Eliche  <aeliche@isty.uvsq.fr>
      
      	Merge from graphite branch.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      	* configure.ac (host_libs): Add ppl and cloog.
      	Add checks for PPL and CLooG.
      	* Makefile.def (ppl, cloog): Added modules and dependences.
      	* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
      	(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.
      
      gcc/
      	* graphite.c: New.
      	* graphite.h: New.
      	* tree-loop-linear.c (perfect_loop_nest_depth): Export.
      	* doc/invoke.texi (-floop-block, -floop-interchange,
      	-floop-strip-mine): Document new flags.
      	* tree-into-ssa.c (gimple_vec): Moved...
      	* tree-loop-distribution.c (rdg_component): Moved...
      	* cfgloopmanip.c: Include tree-flow.h.
      	(update_dominators_in_loop): New.
      	(create_empty_if_region_on_edge): New.
      	(create_empty_loop_on_edge): New.
      	(loopify): Use update_dominators_in_loop.
      	* tree-pass.h (pass_graphite_transforms): Declared.
      	* configure: Regenerate.
      	* tree-phinodes.c (make_phi_node): Export.
      	(add_phi_node_to_bb): New, split from create_phi_node.
      	* tree-chrec.c (for_each_scev_op): New.
      	* tree-chrec.h (for_each_scev_op): Declared.
      	* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
      	(remove_statement): Call get_phi_with_result.
      	* config.in (HAVE_cloog): Undef.
      	* gdbinit.in (pgg): New.
      	* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
      	* tree-ssa-loop.c (graphite_transforms): New.
      	(gate_graphite_transforms): New.
      	(pass_graphite_transforms): New.
      	* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
      	HAVE_cloog): Defined.
      	* tree-vectorizer.c (rename_variables_in_bb): Export.
      	* tree-data-ref.c (dr_may_alias_p): Export.
      	(stmt_simple_memref_p): New.
      	(find_data_references_in_stmt): Export.
      	(find_data_references_in_loop): Export.
      	(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
      	(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
      	(create_rdg_vertices): Export.
      	(build_empty_rdg): New.
      	(build_rdg): Call build_empty_rdg.  Free dependence_relations.
      	* tree-data-ref.h (rdg_component): ... here.
      	(scop_p): New.
      	(struct data_reference): Add a field scop.
      	(DR_SCOP): New.
      	(find_data_references_in_loop): Declared.
      	(find_data_references_in_stmt): Declared.
      	(create_rdg_vertices): Declared.
      	(dr_may_alias_p): Declared.
      	(stmt_simple_memref_p): Declared.
      	(struct rdg_edge): Add a field ddr_p relation.
      	(build_empty_rdg): Declared.
      	* lambda.h (lambda_matrix): Declare a VEC of.
      	(find_induction_var_from_exit_cond): Declared.
      	(lambda_vector_compare): New.
      	* common.opt (fgraphite, floop-strip-mine,
      	floop-interchange, floop-block): New flags.
      	* lambda-code.c (find_induction_var_from_exit_cond): Export.
      	* cfgloop.c (is_loop_exit): New.
      	* cfgloop.h (is_loop_exit): Declared.
      	(create_empty_if_region_on_edge): Declared.
      	(create_empty_loop_on_edge): Declared.
      	* tree-flow.h (add_phi_node_to_bb): Declared.
      	(make_phi_node): Declared.
      	(rename_variables_in_bb): Declared.
      	(perfect_loop_nest_depth): Declared.
      	(graphite_transform_loops): Declared.
      	* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
      	(graphite.o-warn): Add -Wno-error.
      	(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
      	(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
      	(INCLUDES): Add PPLINC, CLOOGINC.
      	(OBJS-common): Add graphite.o.
      	(graphite.o): Add rule.
      	* gimple.h (gimple_vec): ... here.
      	* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
      	* passes.c (init_optimization_passes): Schedule 
      	pass_graphite_transforms.
      
      testsuite/
      
      	* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
      	10,11,12,13,14,15,16,17,18}.c: New.
      	* gcc.dg/graphite/graphite.exp: New.
      	* gcc.dg/graphite/scop-matmult.c: New.
      	* gcc.dg/graphite/block-0.c: New.
      	* lib/target-supports.exp (check_effective_target_fgraphite): New.
      	* gfortran.dg/graphite/block-1.f90: New.
      	* gfortran.dg/graphite/scop-{1,2}.f: New.
      	* gfortran.dg/graphite/block-{1,3,4}.f90: New.
      	* gfortran.dg/graphite/graphite.exp: New.
      
      
      Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
      Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
      Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
      Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
      Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
      Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>
      
      From-SVN: r139893
      Sebastian Pop committed
    • invoke.texi: Document -mword-relocations. · 571191af
      2008-09-01  Paul Brook  <paul@codesourcery.com>
      
      	* doc/invoke.texi: Document -mword-relocations.
      	* config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
      	* config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
      	* config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
      	* config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
      	(arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
      	(arm_emit_movpair): New function.
      	(arm_print_operand <c>): Handle sybolic addresses.
      	* config/arm/arm.h (TARGET_USE_MOVT): Define.
      	(TARGET_DEFAULT_WORD_RELOCATIONS): Define.
      	* config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
      	* config/arm/arm.opt: Add -mword-relocations.
      	* config/arm/arm.md (movsi): Use arm_emit_movpair.
      	(arm_movt, arm_movw): New.
      
      From-SVN: r139881
      Paul Brook committed
  24. 01 Sep, 2008 1 commit
    • sel-sched.h, [...]: New files. · e855c69d
      2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
              Dmitry Melnik  <dm@ispras.ru>
              Dmitry Zhurikhin  <zhur@ispras.ru>
              Alexander Monakov  <amonakov@ispras.ru>
              Maxim Kuvyrkov  <maxim@codesourcery.com>
      
      	* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
      	sel-sched-dump.c, sel-sched-ir.c: New files.
      	* Makefile.in (OBJS-common): Add selective scheduling object
      	files.
      	(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
      	(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
      	(sched-vis.o): Add dependency on $(INSN_ATTR_H).
      	* cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
      	* cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
      	(make_forwarder_block): Update loop latch if we have redirected
      	the loop latch edge.
      	* cfgloop.c (get_loop_body_in_custom_order): New function.
      	* cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
      	(CP_FALLTHRU_PREHEADERS): Likewise.
      	(get_loop_body_in_custom_order): Declare.
      	* cfgloopmanip.c (has_preds_from_loop): New.
      	(create_preheader): Honor CP_FALLTHRU_PREHEADERS.
      	Assert that the preheader edge will be fall thru when it is set.
      	* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
      	fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
      	fsel-sched-substitution, fselective-scheduling): New flags.
          	* cse.c (hash_rtx_cb): New.
      	(hash_rtx): Use it.
      	* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
      	sel_sched_insn_cnt): New counters. 
      	* final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
      	* genattr.c (main): Output maximal_insn_latency prototype.
      	* genautomata.c (output_default_latencies): New. Factor its code from ...
      	(output_internal_insn_latency_func): ... here.
      	(output_internal_maximal_insn_latency_func): New.
      	(output_maximal_insn_latency_func): New.
      	* hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
      	(struct hard_reg_set_iterator): New.
      	(hard_reg_set_iter_init, hard_reg_set_iter_set,
      	hard_reg_set_iter_next): New functions.
      	(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
      	* lists.c (remove_free_INSN_LIST_node,
      	remove_free_EXPR_LIST_node): New functions.
      	* loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
      	set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
      	(loop_optimizer_finalize): Do not verify flow info after reload.
      	* recog.c (validate_replace_rtx_1): New parameter simplify.
      	Default it to true.  Update all uses.  Factor out simplifying
      	code to ...
      	(simplify_while_replacing): ... this new function.
      	(validate_replace_rtx_part,
      	validate_replace_rtx_part_nosimplify): New.
      	* recog.h (validate_replace_rtx_part,
      	validate_replace_rtx_part_nosimplify): Declare.
      	* rtl.c (rtx_equal_p_cb): New.
      	(rtx_equal_p): Use it.
      	* rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
      	(remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
      	debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
      	* vecprim.h: Add a vector type for unsigned int. 
      	* haifa-sched.c: Include vecprim.h and cfgloop.h.
      	(issue_rate, sched_verbose_param, note_list, dfa_state_size,
      	ready_try, cycle_issued_insns, spec_info): Make global.
      	(readyp): Initialize.
      	(dfa_lookahead): New global variable.
      	(old_max_uid, old_last_basic_block): Remove.
      	(h_i_d): Make it a vector.
      	(INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
      	through HID macro.
      	(after_recovery, adding_bb_to_current_region_p):
      	New variables to handle correct insertion of the recovery code.
      	(struct ready_list): Move declaration to sched-int.h.
      	(rgn_n_insns): Removed.
      	(rtx_vec_t): Move to sched-int.h.
      	(find_insn_reg_weight): Remove.
      	(find_insn_reg_weight1): Rename to find_insn_reg_weight.
      	(haifa_init_h_i_d, haifa_finish_h_i_d):
      	New functions to initialize / finalize haifa instruction data.
      	(extend_h_i_d, init_h_i_d): Rewrite.
      	(unlink_other_notes): Move logic to add_to_note_list.  Handle
      	selective scheduler.
      	(ready_lastpos, ready_element, ready_sort, reemit_notes,
      	find_fallthru_edge): Make global, remove static prototypes.
      	(max_issue): Make global.  Add privileged_n and state parameters.  Use
      	them.  
      	(extend_global, extend_all): Removed.
      	(init_before_recovery): Add new param.  Fix the handling of the case
      	when we insert a recovery code before the EXIT which has a predecessor
      	with a fallthrough edge to it.
      	(create_recovery_block): Make global.  Rename to
      	sched_create_recovery_block.  Update.
      	(change_pattern): Rename to sched_change_pattern.  Make global.
      	(speculate_insn): Rename to sched_speculate_insn.  Make global.
      	Split haifa-specific functionality into ...
      	(haifa_change_pattern): New static function.
      	(sched_extend_bb): New static function.
      	(sched_init_bbs): New function.
      	(current_sched_info): Change type to struct haifa_sched_info.
      	(insn_cost): Adjust for selective scheduling.
      	(dep_cost_1): New function.  Move logic from ...
      	(dep_cost): ... here.
      	(dep_cost): Use dep_cost_1.
      	(contributes_to_priority_p): Use sched_deps_info instead of
      	current_sched_info.
      	(priority): Adjust to work with selective scheduling.  Process the
      	corner case when all dependencies don't contribute to priority.
      	(rank_for_schedule): Use ds_weak instead of dep_weak.
      	(advance_state): New function.  Move logic from ...
      	(advance_one_cycle): ... here.
      	(add_to_note_list, concat_note_lists): New functions.
      	(rm_other_notes): Make static.  Adjust for selective scheduling.
      	(remove_notes, restore_other_notes): New functions.
      	(move_insn): Add two arguments.  Update assert.  Don't call
      	reemit_notes.
      	(choose_ready): Remove lookahead variable, use dfa_lookahead.
      	Remove more_issue, max_points.  Move the code to initialize
      	max_lookahead_tries to max_issue.
      	(schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
      	ready.  Adjust use of move_insn.  Call restore_other_notes.
      	(luid): Remove.
      	(sched_init, sched_finish): Move Haifa-specific initialization/
      	finalization to ...
      	(haifa_sched_init, haifa_sched_finish): ... respectively.
      	New functions.
      	(setup_sched_dump): New function.
      	(haifa_init_only_bb): New static function.
      	(haifa_speculate_insn): New static function.
      	(try_ready): Use haifa_* instead of speculate_insn and
      	change_pattern.
      	(extend_ready, extend_all): Remove.
      	(sched_extend_ready_list, sched_finish_ready_list): New functions.
      	(create_check_block_twin, add_to_speculative_block): Use
      	haifa_insns_init instead of extend_global.  Update to use new
      	initialization functions.  Change parameter.  Factor out code from
      	create_check_block_twin to ...
      	(sched_create_recovery_edges) ... this new function.
      	(add_block): Remove.
      	(sched_scan_info): New.
      	(extend_bb): Use sched_scan_info.
      	(init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
      	static functions for walking through scheduling region.
      	(sched_luids): New vector variable to replace uid_to_luid.
      	(luids_extend_insn): New function.
      	(sched_max_luid): New variable.
      	(luids_init_insn): New function.
      	(sched_init_luids, sched_finish_luids): New functions.
      	(insn_luid): New debug function.
      	(sched_extend_target): New function.
      	(haifa_init_insn): New static function.
      	(sched_init_only_bb): New hook.
      	(sched_split_block): New hook.
      	(sched_split_block_1): New function.
      	(sched_create_empty_bb): New hook.
      	(sched_create_empty_bb_1): New function.	
      	(common_sched_info, ready): New global variables.
      	(current_sched_info_var): Remove.
      	(move_block_after_check): Use common_sched_info.		
      	(haifa_luid_for_non_insn): New static function.	
      	(init_before_recovery): Use haifa_init_only_bb instead of
      	add_block.
      	(increase_insn_priority): New.
      	* modulo-sched.c: (issue_rate): Remove static declaration.
      	(sms_sched_info): Change type to haifa_sched_info.
      	(sms_sched_deps_info, sms_common_sched_info): New variables.
      	(setup_sched_infos): New.
      	(sms_schedule): Initialize them.  Call haifa_sched_init/finish.
      	Do not call regstat_free_calls_crossed.
      	(sms_print_insn): Use const_rtx.
      	* params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
      	PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
      	PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
      	PARAM_SCHED_MEM_TRUE_DEP_COST): New.
      	* sched-deps.c (sched_deps_info): New.  Update all relevant uses of
      	current_sched_info to use it.
      	(enum reg_pending_barrier_mode): Move to sched-int.h.
      	(h_d_i_d): New variable. Initialize to NULL.
      	({true, output, anti, spec, forward}_dependency_cache): Initialize
      	to NULL.
      	(estimate_dep_weak): Remove static declaration.
      	(sched_has_condition_p): New function.  Adjust users of
      	sched_get_condition to use it instead.
      	(conditions_mutex_p): Add arguments indicating which conditions are
      	reversed.  Use them.
      	(sched_get_condition_with_rev): Rename from sched_get_condition.  Add
      	argument to indicate whether returned condition is reversed.  Do not
      	generate new rtx when condition should be reversed; indicate it by
      	setting new argument instead.
      	(add_dependence_list_and_free): Add deps parameter.
      	Update all users.  Do not free dependence list when
      	deps context is readonly.
      	(add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
      	contexts.
      	(remove_from_dependence_list, remove_from_both_dependence_lists): New.
      	(remove_from_deps): New. Use the above functions.	
      	(cur_insn, can_start_lhs_rhs_p): New static variables.
      	(add_or_update_back_dep_1): Initialize present_dep_type.
      	(haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
      	haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
      	haifa_note_dep): New functions implementing dependence hooks for
      	the Haifa scheduler.
      	(note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
      	note_dep): New functions.
      	(ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
      	functions.
      	(init_deps): Initialize last_reg_pending_barrier and deps->readonly.
      	(free_deps): Initialize deps->reg_last.
      	(sched_analyze_reg, sched_analyze_1, sched_analyze_2,
      	sched_analyze_insn): Update to use dependency hooks infrastructure
      	and readonly contexts.
      	(deps_analyze_insn): New function.  Move part of logic from ...
      	(sched_analyze): ... here.  Also move some logic to ...
      	(deps_start_bb): ... here.  New function.
      	(add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
      	sel_sched_p.
      	(sched_deps_init): New function.  Move code from ...
      	(init_dependency_caches): ... here.  Remove.
      	(init_deps_data_vector): New.
      	(sched_deps_finish): New function.  Move code from ...
      	(free_dependency_caches): ... here.  Remove.
      	(init_deps_global, finish_deps_global): Adjust for use with
      	selective scheduling.
      	(get_dep_weak): Move logic to ...
      	(get_dep_weak_1): New function.
      	(ds_merge): Move logic to ...
      	(ds_merge_1): New static function.
      	(ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
      	(ds_get_max_dep_weak): New function.
      	* sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
      	(n_insns): Rename to rgn_n_insns.
      	(debug_ebb_dependencies): New function.
      	(init_ready_list): Use it.
      	(begin_schedule_ready): Use sched_init_only_bb.
      	(ebb_print_insn): Indicate when an insn starts a new cycle.
      	(contributes_to_priority, compute_jump_reg_dependencies,
      	add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
      	(add_block1): Remove to ebb_add_block.
      	(ebb_sched_deps_info, ebb_common_sched_info): New variables.
      	(schedule_ebb): Initialize them.  Use remove_notes instead of
      	rm_other_notes.  Use haifa_local_init/finish.
      	(schedule_ebbs): Use haifa_sched_init/finish.
      	* sched-int.h: Include vecprim.h, remove rtl.h.
      	(struct ready_list): Delete declaration.
      	(sched_verbose_param, enum sched_pass_id_t,
      	bb_vec_t, insn_vec_t, rtx_vec_t): New.
      	(struct sched_scan_info_def): New structure.
      	(sched_scan_info, sched_scan, sched_init_bbs,
      	sched_init_luids, sched_finish_luids, sched_extend_target,
      	haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
      	(struct common_sched_info_def): New.
      	(common_sched_info, haifa_common_sched_info,
      	sched_emulate_haifa_p): Declare.
      	(sel_sched_p): New.
      	(sched_luids): Declare.
      	(INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
      	(sched_max_luid, insn_luid): Declare.
      	(note_list, remove_notes, restore_other_notes, bb_note): Declare.
      	(sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
      	print_insn, print_pattern, print_value, haifa_classify_insn,
      	sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
      	setup_sched_dump, sched_init, sched_finish,
      	sel_insn_is_speculation_check): Export.
      	(struct ready_list): Move from haifa-sched.c.
      	(ready_try, ready, max_issue): Export.
      	(ebb_compute_jump_reg_dependencies, find_fallthru_edge,
      	sched_init_only_bb, sched_split_block, sched_split_block_1,
      	sched_create_empty_bb, sched_create_empty_bb_1,
      	sched_create_recovery_block, sched_create_recovery_edges): Export.
      	(enum reg_pending_barrier_mode): Export.
      	(struct deps): New fields `last_reg_pending_barrier' and `readonly'.
      	(deps_t): New.
      	(struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
      	print_insn field.  Move add_block and fix_recovery_cfg to
      	common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
      	(struct sched_deps_info_def): ... this new structure.
      	(sched_deps_info): Declare.
      	(struct spec_info_def): Remove weakness_cutoff, add
      	data_weakness_cutoff and control_weakness_cutoff.
      	(spec_info): Declare.
      	(struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
      	dep_count field.
      	(struct haifa_insn_data): Rename to struct _haifa_insn_data.
      	(haifa_insn_data_def, haifa_insn_data_t): New typedefs.
      	(current_sched_info): Change type to struct haifa_sched_info.
      	(haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
      	(h_d_i_d): New variable.
      	(HDID): New accessor macro.
      	(h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
      	(HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
      	and HDID.
      	(IS_SPECULATION_CHECK_P): Update for selective scheduler.
      	(enum SCHED_FLAGS): Update for selective scheduler.
      	(enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
      	(init_dependency_caches, free_dependency_caches): Delete declarations.
      	(deps_analyze_insn, remove_from_deps, get_dep_weak_1,
      	estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
      	ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
      	sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
      	haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
      	ds_to_dt): Export.
      	(rm_other_notes): Delete declaration.
      	(schedule_block): Remove one argument.
      	(cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
      	ready_element, ready_lastpos, sched_extend_ready_list,
      	sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
      	concat_note_lists): Export.
      	(struct region): Move from sched-rgn.h.
      	(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
      	RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
      	BLOCK_TO_BB, CONTAINING_RGN): Export.
      	(ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
      	(current_nr_blocks, current_blocks, target_bb): Likewise.
      	(dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
      	sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
      	sched_rgn_local_init, extend_regions,
      	rgn_make_new_region_out_of_new_block, compute_priorities,
      	debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
      	extend_rgns, deps_join rgn_setup_common_sched_info,
      	rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
      	dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
      	(get_rgn_sched_max_insns_priority, sel_add_to_insn_priority, 
      	increase_insn_priority): Likewise.
      	* sched-rgn.c: Include sel-sched.h.
      	(ref_counts): New static variable.  Use it ...
      	(INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
      	(FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
      	(sched_is_disabled_for_current_region_p): Delete static declaration.
      	(struct region): Move to sched-int.h.
      	(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
      	ebb_head): Define and initialize.
      	(RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
      	BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
      	BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
      	sched-int.h.
      	(find_single_block_region): Add new argument to indicate that EBB
      	regions should be constructed.
      	(debug_live): Delete declaration.
      	(current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
      	(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
      	declaration.
      	(init_regions): Delete declaration.
      	(debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
      	rgn_estimate_number_of_insns): New.
      	(too_large): Use estimate_number_of_insns.
      	(haifa_find_rgns): New. Move the code from ...
      	(find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
      	(free_trg_info): New.
      	(compute_trg_info): Allocate candidate tables here instead of ...
      	(init_ready_list): ... here.
      	(rgn_print_insn): Use const_rtx.
      	(contributes_to_priority, extend_regions): Delete static declaration.
      	(add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
      	(add_block1): Rename to rgn_add_block.
      	(debug_rgn_dependencies): Delete static qualifier.
      	(new_ready): Use sched_deps_info.  Simplify.
      	(rgn_common_sched_info, rgn_const_sched_deps_info,
      	rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
      	(region_sched_info): Rename to rgn_const_sched_info.
      	(deps_join): New, extracted from ...
      	(propagate_deps): ... here.
      	(compute_block_dependences, debug_dependencies): Update for selective
      	scheduling.
      	(free_rgn_deps, compute_priorities): New functions.
      	(sched_rgn_init, sched_rgn_finish, rgn_setup_region,
      	sched_rgn_compute_dependencies): New functions.
      	(schedule_region): Use them.
      	(sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
      	rgn_setup_common_sched_info, rgn_setup_sched_infos):
      	New functions.
      	(schedule_insns): Call new functions that were split out.
      	(rgn_make_new_region_out_of_new_block): New.
      	(get_rgn_sched_max_insns_priority): New.
      	(rest_of_handle_sched, rest_of_handle_sched2): Call selective
      	scheduling when appropriate.
      	* sched-vis.c: Include insn-attr.h.
      	(print_value, print_pattern): Make global.
      	(print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
      	* target-def.h (TARGET_SCHED_ADJUST_COST_2,
      	TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
      	TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
      	TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
      	TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
      	hooks.  Initialize them to 0.
      	(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
      	* target.h (struct gcc_target): Add them.  Rename gen_check field to
      	gen_spec_check.
      	* flags.h (sel_sched_switch_set): Declare.
      	* opts.c (sel_sched_switch_set): New variable.
      	(decode_options): Unset flag_sel_sched_pipelining_outer_loops if
      	pipelining is disabled from command line.
      	(common_handle_option): Record whether selective scheduling is
      	requested from command line.
      	* doc/invoke.texi: Document new flags and parameters.
      	* doc/tm.texi: Document new target hooks.
      	* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
      	(dfa_state_size): Do not declare locally.
      	* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
      	* config/rs6000/rs6000.c (rs6000_init_sched_context,
      	rs6000_alloc_sched_context, rs6000_set_sched_context,
      	rs6000_free_sched_context): New functions.
      	(struct _rs6000_sched_context): New.
      	(rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
      	scheduling.
      	(rs6000_sched_finish): Do not run for selective scheduling. 
      
      Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>
      Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
      Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru>
      Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
      
      From-SVN: r139854
      Andrey Belevantsev committed
  25. 30 Aug, 2008 2 commits
    • Change attribute((option(...))) to attribute((target(...))); Do not allocate… · 5779e713
      Change attribute((option(...))) to attribute((target(...))); Do not allocate tree nodes on x86 for builtins until we generate code for the ISA; Delete hot/cold functions changing optimization; Make C++ support target specific functions; Add #pragma GCC {push_options,pop_options,reset_options} instead of #pragma GCC {target,optimize} {push,reset,pop}
      
      From-SVN: r139812
      Michael Meissner committed
    • optabs.c (expand_abs_nojump): Update BRANCH_COST call. · 3a4fd356
      	* optabs.c (expand_abs_nojump): Update BRANCH_COST call.
      	* fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
      	* dojump.c (do_jump): Likewise.
      	* ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
      	(note-if_info): Add BRANCH_COST.
      	(noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
      	noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
      	noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
      	branch cost.
      	* expr.h (BRANCH_COST): Update default.
      	* predict.c (predictable_edge_p): New function.
      	* expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
      	Update BRANCH_COST call.
      	* basic-block.h (predictable_edge_p): Declare.
      	* config/alpha/alpha.h (BRANCH_COST): Update.
      	* config/frv/frv.h (BRANCH_COST): Update.
      	* config/s390/s390.h (BRANCH_COST): Update.
      	* config/spu/spu.h (BRANCH_COST): Update.
      	* config/sparc/sparc.h (BRANCH_COST): Update.
      	* config/m32r/m32r.h (BRANCH_COST): Update.
      	* config/i386/i386.h (BRANCH_COST): Update.
      	* config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
      	* config/sh/sh.h (BRANCH_COST): Update.
      	* config/pdp11/pdp11.h (BRANCH_COST): Update.
      	* config/avr/avr.h (BRANCH_COST): Update.
      	* config/crx/crx.h (BRANCH_COST): Update.
      	* config/xtensa/xtensa.h (BRANCH_COST): Update.
      	* config/stormy16/stormy16.h (BRANCH_COST): Update.
      	* config/m68hc11/m68hc11.h (BRANCH_COST): Update.
      	* config/iq2000/iq2000.h (BRANCH_COST): Update.
      	* config/ia64/ia64.h (BRANCH_COST): Update.
      	* config/rs6000/rs6000.h (BRANCH_COST): Update.
      	* config/arc/arc.h (BRANCH_COST): Update.
      	* config/score/score.h (BRANCH_COST): Update.
      	* config/arm/arm.h (BRANCH_COST): Update.
      	* config/pa/pa.h (BRANCH_COST): Update.
      	* config/mips/mips.h (BRANCH_COST): Update.
      	* config/vax/vax.h (BRANCH_COST): Update.
      	* config/h8300/h8300.h (BRANCH_COST): Update.
      	* params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
      	* doc/invoke.texi (predictable-branch-cost-outcome): Document.
      	* doc/tm.texi (BRANCH_COST): Update.
      
      From-SVN: r139804
      Jan Hubicka committed
  26. 29 Aug, 2008 2 commits
    • common.opt (ftree-store-ccp): Mark as preserved for backward compatibility. · dce2b2f6
      2008-08-29  Richard Guenther  <rguenther@suse.de>
      
      	* common.opt (ftree-store-ccp): Mark as preserved for
      	backward compatibility.
      	* doc/invoke.texi (-ftree-store-ccp): Remove documentation.
      	* tree-pass.h (pass_store_ccp): Remove.
      	* tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
      	(first_vdef): Remove declaration.
      	(get_value_loaded_by): Likewise.
      	* tree-ssa-ccp.c (do_store_ccp): Remove.
      	(get_default_value): Simplify as do_store_ccp is always false
      	now.  Do not initialize mem_ref.
      	(set_value_varying): Likewise.
      	(canonicalize_float_value): Likewise.
      	(set_lattice_value): Likewise.
      	(likely_value): Likewise.
      	(surely_varying_stmt_p): Likewise.
      	(ccp_initialize): Likewise.
      	(ccp_lattice_meet): Likewise.
      	(ccp_visit_phi_node): Likewise.
      	(ccp_fold): Likewise.
      	(evaluate_stmt): Likewise.
      	(visit_assignment): Likewise.
      	(ccp_visit_stmt): Likewise.
      	(execute_ssa_ccp): Fold into ...
      	(do_ssa_ccp): ... this.
      	(do_ssa_store_ccp): Remove.
      	(gate_store_ccp): Likewise.
      	(pass_store_ccp): Likewise.
      	* tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
      	initialize mem_ref.
      	* tree-ssa-propagate.c (first_vdef): Remove.
      	(get_value_loaded_by): Likewise.
      	(replace_vuses_in): Likewise.
      	(substitute_and_fold): Do not call replace_vuses_in.
      	* opts.c (decode_options): Do not set flag_tree_store_ccp.
      
      From-SVN: r139764
      Richard Guenther committed
    • invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3 · fcbe056b
      	* doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
      	(-fipa-cp-clone): Enabled by default at -O3.
      	* opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
      	make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
      
      From-SVN: r139762
      Jan Hubicka committed
  27. 28 Aug, 2008 1 commit
  28. 26 Aug, 2008 1 commit
    • [multiple changes] · 058e97ec
      2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
      	ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
      
      	* doc/passes.texi: Describe IRA.
      
      	* doc/tm.texi (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
      
      	* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
      	(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
      	-fira-propagate-cost, -fno-ira-share-save-slots,
      	-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
      
      	* flags.h (ira_algorithm): New enumeration.
      	(flag_ira_algorithm, flag_ira_verbose): New external variable
      	declarations.
      
      	* postreload.c (gate_handle_postreload): Don't do post reload
      	optimizations unless the reload is completed.
      
      	* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
      	IRA.
      
      	* tree-pass.h (pass_ira): New external variable declaration.
      
      	* reload.h: Add 2008 to the Copyright.
          
      	* cfgloopanal.c: Include params.h.
      	(estimate_reg_pressure_cost): Decrease cost for IRA optimization
      	mode.
          
      	* params.h (IRA_MAX_LOOPS_NUM): New macro.
      
      	* toplev.c (ira.h): New include.
      	(flag_ira_algorithm, flag_ira_verbose): New external variables.
      	(backend_init_target): Call ira_init.
      	(backend_init): Call ira_init_once.
      	(finalize): Call finish_ira_once.
      
      	* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
      	flag_ira_share_save_slots, flag_ira_share_spill_slots): New
      	external variables.
      
      	* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
      	may_move_out_cost): New external variable declarations.
      	(move_table): New typedef.
          
      	* caller-save.c: Include headers output.h and ira.h.
      	(no_caller_save_reg_set): New global variable.
      	(save_slots_num, save_slots): New variables.
      	(reg_save_code, reg_restore_code, add_stored_regs): Add
      	prototypes.
      	(init_caller_save): Set up no_caller_save_reg_set.
      	(init_save_areas): Reset save_slots_num.
      	(saved_hard_reg): New structure.
      	(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
      	(initiate_saved_hard_regs, new_saved_hard_reg,
      	finish_saved_hard_regs, saved_hard_reg_compare_func): New
      	functions.
      	(setup_save_areas): Add code for sharing stack slots.
      	(all_blocks): New variable.
      	(save_call_clobbered_regs): Process pseudo-register too.
      	(mark_set_regs): Process pseudo-register too.
      	(insert_one_insn): Put the insn after bb note in a empty basic
      	block.  Add insn check.
          
      	* global.c (eliminable_regset): Make it external.
      	(mark_elimination): Use DF_LR_IN for IRA.
      	(pseudo_for_reload_consideration_p): New.
      	(build_insn_chain): Make it external.  Don't ignore spilled
      	pseudos for IRA.  Use pseudo_for_reload_consideration_p.
      	(gate_handle_global_alloc): New function.
      	(pass_global_alloc): Add the gate function.
      
      	* opts.c (decode_options): Set up flag_ira.  Print the warning for
      	-fira.
      	(common_handle_option): Process -fira-algorithm and -fira-verbose.
      
      	* timevar.def (TV_IRA, TV_RELOAD): New passes.
      
      	* regmove.c (regmove_optimize): Don't do replacement of output for
      	IRA.
      
      	* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
      	New external variable declarations.
      
      	* local-alloc.c (update_equiv_regs): Make it external.  Return
      	true if jump label rebuilding should be done.  Rescan new_insn for
      	notes.
      	(gate_handle_local_alloc): New function.
      	(pass_local_alloc): Add the gate function.
      
      	* alias.c (value_addr_p, stack_addr_p): New functions.
      	(nonoverlapping_memrefs_p): Use them for IRA.
      
      	* common.opt (fira, fira-algorithm, fira-coalesce,
      	fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
      	fira-verbose): New options.
      
      	* regclass.c (reg_class_subclasses, contains_reg_of_mode,
      	move_cost, may_move_in_cost, may_move_out_cost): Make the
      	variables external.
      	(move_table): Remove typedef.
      	(init_move_cost): Make it external.
      	(allocate_reg_info, resize_reg_info, setup_reg_classes): New
      	functions.
      
      	* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
      	setup_reg_classes): New function prototypes.
      	(eliminable_regset): New external variable declaration.
      	(build_insn_chain, update_equiv_regs): New function prototypes.
          
      	* Makefile.in (IRA_INT_H): New definition.
      	(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
      	ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
      	(reload1.o, toplev.o): Add dependence on ira.h.
      	(cfgloopanal.o): Add PARAMS_H.
      	(caller-save.o): Add dependence on output.h and ira.h.
      	(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
      	ira-emit.o, ira-lives.o): New entries.
      
      	* passes.c (pass_ira): New pass.
      
      	* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
      
      	* reload1.c (ira.h): Include the header.
      	(changed_allocation_pseudos): New bitmap.
      	(init_reload): Initiate the bitmap.
      	(compute_use_by_pseudos): Permits spilled registers in FROM.
      	(temp_pseudo_reg_arr): New variable.
      	(reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
      	IRA.  Call alter_reg with the additional parameter.  Don't clear
      	spilled_pseudos for IRA.  Restore original insn chain for IRA.
      	Clear changed_allocation_pseudos at the end of reload.
      	(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
      	(hard_regno_to_pseudo_regno): New variable.
      	(count_pseudo): Check spilled pseudos.  Set up
      	hard_regno_to_pseudo_regno.
      	(count_spilled_pseudo): Check spilled pseudos. Update
      	hard_regno_to_pseudo_regno.
      	(find_reg): Use better_spill_reload_regno_p.  Check
      	hard_regno_to_pseudo_regno.
      	(alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
      	code for IRA.
      	(eliminate_regs_1): Use additional parameter for alter_reg.
      	(finish_spills): Set up pseudo_previous_regs only for spilled
      	pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
      	more arguments.  Don't clear live_throughout and dead_or_set for
      	spilled pseudos.  Use additional parameter for alter_reg.  Call
      	mark_allocation_change.  Set up changed_allocation_pseudos.
      	Remove sanity check.
      	(emit_input_reload_insns, delete_output_reload): Use additional
      	parameter for alter_reg.  Call mark_allocation_change.
      	(substitute, gen_reload_chain_without_interm_reg_p): New
      	functions.
      	(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
          
      	* testsuite/gcc.dg/20080410-1.c: New file.
      	
      	* config/s390/s390.h (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
      
      	* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
          
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
          
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira.c (setup_reg_class_intersect_union): Prefer smallest class
      	when ignoring unavailable registers.
      
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
      	FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
      	* ira.c (setup_eliminable_regset): Check stack_realign_needed.
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
      
      	2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
      	* ira-build.c (allocno_range_compare_func): Stabilize sort.
      
      	2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
      	* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
      	* reload1.c (find_reg): Process registers in register allocation order.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* toplev.c (backend_init_target): Move ira_init call from
      	here...
      	(lang_dependent_init_target): ...to here.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* ira.c (setup_class_subset_and_memory_move_costs): Don't
      	calculate memory move costs for NO_REGS.
      
      	2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
      	* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
      	STACK_REGS is defined.
      
      	2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
      	* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
      	* config/sh/sh.h (IRA_COVER_CLASSES): Define.
      	* config/sh/sh.md (movsicc_true+3): Check if emit returns a
      	barrier.
      
      From-SVN: r139590
      Vladimir Makarov committed
  29. 25 Aug, 2008 1 commit
    • config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*. · d97e6aca
      	* config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
      	* config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
      	(TARGET_OCTEON): New macro.
      	(TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
      	(MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
      	(ISA_HAS_POP): New macro.
      	* config/mips/driver-native.c (host_detect_local_cpu): Handle
      	Octeon.
      	* config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
      	Handle Octeon.
      	* config/mips/mips.md (cpu): Add octeon.
      	(type): Add pop attribute value.
      	(popcount<mode>2): New pattern.
      	* doc/invoke.texi (-march=@var{arch}): Add octeon.
      testsuite/
      	* gcc.target/mips/octeon-pop-1.c: New test.
      
      From-SVN: r139554
      Adam Nemet committed
  30. 24 Aug, 2008 1 commit
    • invoke.texi (-fipa-cp-clone): New option. · 5e45130d
      	* doc/invoke.texi (-fipa-cp-clone): New option.
      	(-fipa-cp): Update docs.
      	(--param ipcp-unit-growth):New.
      	* ipa-cp.c: Include fibheap.h, params.h
      	(ipcp_initialize_node_lattices): When not cloning, all externally
      	visible functions are bottom.
      	(ipcp_need_redirect_p): Accept clones.
      	(ipcp_insert_stage): Use cost driven heuristics.
      	(max_count, dead_nodes): New static vars.
      	(ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
      	ipcp_const_param_count): New functions.
      	* common.opt (ipa-cp-clone): New command line option.
      	* params.def (ipcp-unit-growth): New.
      
      	* gcc.dg/ipa/ipacost-1.c: New testcase.
      	* gcc.dg/ipa/ipacost-2.c: New testcase.
      	* gcc.dg/ipa/ipa-7.c: Update template.
      
      From-SVN: r139543
      Jan Hubicka committed