1. 10 Oct, 2013 1 commit
  2. 09 Oct, 2013 2 commits
    • params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param... · 4d5b5e9f
      2013-10-09  Easwaran Raman <eraman@google.com>
      
              * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
              * cfgexpand.c (defer_stack_allocation): ...use here
              * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
      
      From-SVN: r203330
      Easwaran Raman committed
    • re PR c/20318 (RFE: add attribute to specify that a function never returns NULL) · 826cacfe
      2013-10-09  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR tree-optimization/20318
      gcc/c-family/
      	* c-common.c (handle_returns_nonnull_attribute): New function.
      	(c_common_attribute_table): Add returns_nonnull.
      
      gcc/
      	* doc/extend.texi (returns_nonnull): New function attribute.
      	* fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
      	attribute.
      	* tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
      	(stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
      
      gcc/testsuite/
      	* c-c++-common/pr20318.c: New file.
      	* gcc.dg/tree-ssa/pr20318.c: New file.
      
      From-SVN: r203316
      Marc Glisse committed
  3. 07 Oct, 2013 1 commit
    • 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> · ee163e72
      	* config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
      	("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
      	constraint letters from expanders.
      	("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
      	retry count to general_operand.
      	("tabort"): Give operand 0 a mode.
      	("tabort_1"): Add mode and constraint letter for operand 0.
      	* doc/extend.texi: Fix protoype of __builtin_non_tx_store.
      
      2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* gcc.target/s390/htm-1.c: Add more tests to cover different
      	operand types.
      
      From-SVN: r203239
      Andreas Krebbel committed
  4. 03 Oct, 2013 1 commit
    • predict.c (tree_predict_by_opcode): Get the probability for builtin_expect from… · 942df739
      predict.c (tree_predict_by_opcode): Get the probability for builtin_expect from param builtin_expect_probability.
      
              * predict.c (tree_predict_by_opcode): Get the probability
              for builtin_expect from param builtin_expect_probability.
              * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
              * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
              * doc/invoke.texi: Add documentation for builtin-expect-probability.
              * gcc.target/i386/cold-attribute-2.c: Fix the test by using original
              probability.
              * gcc.dg/tree-ssa/ipa-split-5.c: Ditto.
              * gcc.dg/tree-ssa/ipa-split-6.c: Ditto.
      
      --This li (t)ene, and those below, will be ignored--
      
      M    gcc/params.def
      M    gcc/predict.def
      M    gcc/ChangeLog
      M    gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c
      M    gcc/testsuite/gcc.dg/tree-ssa/ipa-split-6.c
      M    gcc/testsuite/gcc.target/i386/cold-attribute-2.c
      M    gcc/predict.c
      M    gcc/doc/invoke.texi
      
      From-SVN: r203167
      Rong Xu committed
  5. 01 Oct, 2013 4 commits
  6. 29 Sep, 2013 1 commit
  7. 28 Sep, 2013 1 commit
    • expr.h (extract_bit_field): Remove packedp parameter. · c6285bd7
      2013-09-28  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* expr.h (extract_bit_field): Remove packedp parameter.
      	* expmed.c (extract_fixed_bit_field): Remove packedp parameter
      	from forward declaration.
      	(store_split_bit_field): Remove packedp arg from calls to
      	extract_fixed_bit_field.
      	(extract_bit_field_1): Remove packedp parameter and packedp
      	argument from recursive calls and calls to extract_fixed_bit_field.
      	(extract_bit_field): Remove packedp parameter and corresponding
      	arg to extract_bit_field_1.
      	(extract_fixed_bit_field): Remove packedp parameter.  Remove code
      	to issue warnings.
      	(extract_split_bit_field): Remove packedp arg from call to
      	extract_fixed_bit_field.
      	* expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
      	(copy_blkmode_from_reg): Likewise.
      	(copy_blkmode_to_reg): Likewise.
      	(read_complex_part): Likewise.
      	(store_field): Likewise.
      	(expand_expr_real_1): Likewise.
      	* calls.c (store_unaligned_arguments_into_pseudos): Adjust call
      	to extract_bit_field.
      	* config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
      	call to extract_bit_field.
      	* config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
      	call to extract_bit_field.
      	* doc/invoke.texi (Code Gen Options): Remove mention of warnings
      	and special packedp behavior from -fstrict-volatile-bitfields
      	documentation.
      
      From-SVN: r203003
      Sandra Loosemore committed
  8. 27 Sep, 2013 1 commit
  9. 26 Sep, 2013 1 commit
  10. 24 Sep, 2013 1 commit
  11. 23 Sep, 2013 2 commits
    • rs6000.h (enum r6000_reg_class_enum): Add new constraints: wu, ww, and wy. · 5e8586d7
      2013-09-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
      	constraints: wu, ww, and wy.  Repurpose wv constraint added during
      	power8 changes.  Put wg constraint in alphabetical order.
      
      	* config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
      	for future work to add ISA 2.07 VSX single precision support.
      	(-mvsx-scalar-double): Change default from -1 to 1, update
      	documentation comment.
      	(-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
      	(-mupper-regs-df): New debug switch to control whether DF values
      	can go in the traditional Altivec registers.
      	(-mupper-regs-sf): New debug switch to control whether SF values
      	can go in the traditional Altivec registers.
      
      	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
      	and wy constraints.
      	(rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
      	loop variables.  Rename -mvsx-scalar-memory to -mupper-regs-df.
      	Add new constraints, wu/ww/wy.  Repurpose wv constraint.
      	(rs6000_debug_legitimate_address_p): Print if we are running
      	before, during, or after reload.
      	(rs6000_secondary_reload): Add a comment.
      	(rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
      
      	* config/rs6000/constraints.md (wa constraint): Sort w<x>
      	constraints.  Update documentation string.
      	(wd constraint): Likewise.
      	(wf constraint): Likewise.
      	(wg constraint): Likewise.
      	(wn constraint): Likewise.
      	(ws constraint): Likewise.
      	(wt constraint): Likewise.
      	(wx constraint): Likewise.
      	(wz constraint): Likewise.
      	(wu constraint): New constraint for ISA 2.07 SFmode scalar
      	instructions.
      	(ww constraint): Likewise.
      	(wy constraint): Likewise.
      	(wv constraint): Repurpose ISA 2.07 constraint that we not used in
      	the previous submissions.
      	* doc/md.texi (PowerPC and IBM RS6000): Likewise.
      
      From-SVN: r202843
      Michael Meissner committed
    • rtl.texi (REG_NOTES): Say that int_list can also be used. · e5af9ddd
      gcc/
      	* doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
      	(REG_BR_PROB): Say that the probability is stored in an int_list.
      	* reg-notes.def: Update commentary to mention INT_LIST.
      	* rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
      	(INT_LIST): New rtx.
      	* rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
      	* rtlanal.c (int_reg_note_p): New function.
      	(alloc_reg_note): Assert that the note does not have an int argument.
      	(add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
      	* combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
      	* cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
      	rather than an INSN_LIST.  Handle INT_LIST.
      	* ifcvt.c (cond_exec_process_insns): Take the probability as an int
      	rather than an rtx.  Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
      	(cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
      	Manipulate them as ints rather than rtxes.
      	* reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
      	* regmove.c (copy_src_to_dest): Likewise.
      	* sched-vis.c (print_insn_with_notes): Handle INT_LIST.
      
      	* config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
      	into the cases that need it.
      	* config/arm/arm.c (arm_unwind_emit): Likewise.
      
      	* asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
      	* emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
      	* loop-doloop.c (add_test, doloop_modify): Likewise.
      	* loop-unswitch.c (compare_and_jump_seq): Likewise.
      	* optabs.c (emit_cmp_and_jump_insn_1): Likewise.
      	* predict.c (combine_predictions_for_insn): Likewise.
      	* print-rtl.c (print_rtx): Handle INT_LIST.
      	* config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
      	* config/alpha/alpha.c (emit_unlikely_jump): Likewise.
      	* config/arm/arm.c (emit_unlikely_jump): Likewise.
      	* config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
      	(ix86_split_fp_branch, predict_jump): Likewise.
      	* config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
      	* config/sh/sh.c (expand_cbranchsi4): Likewise.
      	* config/spu/spu.c (ea_load_store_inline): Likewise.
      
      	* cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
      	value of a REG_BR_PROB note.
      	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
      	(update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
      	* emit-rtl.c (try_split): Likewise.
      	* predict.c (br_prob_note_reliable_p): Likewise.
      	(invert_br_probabilities, combine_predictions_for_insn): Likewise.
      	* reorg.c (mostly_true_jump): Likewise.
      	* config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
      	* config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
      	* config/i386/i386.c (ix86_print_operand): Likewise.
      	* config/ia64/ia64.c (ia64_print_operand): Likewise.
      	* config/mmix/mmix.c (mmix_print_operand): Likewise.
      	* config/rs6000/rs6000.c (output_cbranch): Likewise.
      	* config/s390/s390.c (s390_expand_tbegin): Likewise.
      	* config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
      	* config/sparc/sparc.c (output_cbranch): Likewise.
      	* config/spu/spu.c (get_branch_target): Likewise.
      	* config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
      	* config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
      
      From-SVN: r202839
      Richard Sandiford committed
  12. 20 Sep, 2013 1 commit
  13. 18 Sep, 2013 2 commits
  14. 17 Sep, 2013 1 commit
    • msp430-protos.h: Add prototypes for new functions. · cad055a4
      	* config/msp430/msp430-protos.h: Add prototypes for new functions.
      	* config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
      	interrupt handlers.
      	(is_attr_func): New function.
      	(msp430_is_interrupt_func): New function.
      	(is_naked_func): New function.
      	(is_reentrant_func): New function.
      	(is_critical_func): New function.
      	(msp430_start_function): Add annotations for function attributes.
      	(msp430_attr): New function.
      	(msp430_attribute_table): New.
      	(msp430_function_section): New function.
      	(TARGET_ASM_FUNCTION_SECTION): Define.
      	(msp430_builtin): New enum.
      	(msp430_init_builtins): New function.
      	(msp430_builtin_devl): New function.
      	(msp430_expand_builtin): New function.
      	(TARGET_INIT_BUILTINS): Define.
      	(TARGET_EXPAND_BUILTINS): Define.
      	(TARGET_BUILTIN_DECL): Define.
      	(msp430_expand_prologue): Add support for naked, interrupt,
      	critical and reentrant functions.
      	(msp430_expand_epilogue): Likewise.
      	(msp430_print_operand): Handle 'O' character.
      	* config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
      	NO_TRAMPOLINES.
      	* config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
      	UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
      	(pushm): Use a 'n' rather than an 'i' constraint.
      	(msp_return): Add generation of the interrupt return instruction.
      	(disable_interrupts): New pattern.
      	(enable_interrupts): New pattern.
      	(push_intr_state): New pattern.
      	(pop_intr_state): New pattern.
      	(bic_SR): New pattern.
      	(bis_SR): New pattern.
      	* doc/extend.texi: Document MSP430 function attributes and builtin
      	functions.
      
      From-SVN: r202645
      Nick Clifton committed
  15. 16 Sep, 2013 2 commits
  16. 13 Sep, 2013 1 commit
    • c-target.def: New hook · 88b0e79e
      2013-09-13  Jacek Caban  <jacek@codeweavers.com>
      
      	* c-target.def: New hook
          
          gcc/ChangeLog:
      
      2013-09-13  Jacek Caban  <jacek@codeweavers.com>
      
      	* config.gcc: Use new winnt-c.c target hooks
      	* config/t-winnt: New file
      	* config/winnt-c.c: New file
      	* doc/tm.texi.in: Document new hook
      	* doc/tm.texi: Regenerated
          
          gcc/cp/Changelog:
      
      2013-09-13  Jacek Caban  <jacek@codeweavers.com>
      
      	* decl.c: Use new cxx_implicit_extern_c hook
          
          gcc/testsuite/ChangeLog:
      
      2013-09-13  Jacek Caban  <jacek@codeweavers.com>
      
      	* g++.dg/abi/main.C: Added implicit C linkage tests
      
      From-SVN: r202573
      Jacek Caban committed
  17. 12 Sep, 2013 2 commits
  18. 11 Sep, 2013 1 commit
  19. 10 Sep, 2013 1 commit
  20. 09 Sep, 2013 1 commit
    • re PR c++/43452 (Array delete causes error on incomplete type) · c9b0866a
      2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/43452
      	* doc/invoke.texi (-Wdelete-incomplete): Document it.
      
      /c-family
      2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/43452
      	* c.opt (Wdelete-incomplete): Add.
      
      /cp
      2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/43452
      	* init.c (build_vec_delete_1): When the type is incomplete emit a
      	warning, enabled by default (not an error).
      	(build_delete): Adjust to use OPT_Wdelete_incomplete.
      
      /testsuite
      2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/43452
      	* g++.dg/warn/Wdelete-incomplete-1.C: New.
      	* g++.dg/warn/Wdelete-incomplete-2.C: Likewise.
      	* g++.dg/init/delete1.C: Adjust.
      
      From-SVN: r202404
      Paolo Carlini committed
  21. 06 Sep, 2013 1 commit
  22. 05 Sep, 2013 2 commits
    • [AArch64] Support the 'crc' extension in -march and -mcpu options. · 5922847b
      gcc/
      
      	* config/aarch64/aarch64-option-extensions.def: Add
      	AARCH64_OPT_EXTENSION of 'crc'.
      	* config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
      	(AARCH64_ISA_CRC): Ditto.
      	* doc/invoke.texi (-march and -mcpu feature modifiers): Add
      	description of the CRC extension.
      
      From-SVN: r202275
      Yufeng Zhang committed
    • [AArch64, AArch32][Insn classification refactoring 6/N] Remove "neon_type" attribute · 003bb7f3
      gcc/
      	* config/aarch64/aarch64.md: Rename r_2_f and f_2_r where appropriate.
      	* config/arm/arm.md (attribute "neon_type"): Delete.  Move attribute
      	values to config/arm/types.md.  Update patterns where appropriate.
      	* config/arm/types.md (type): Add Neon types.
      	* config/arm/neon.md: Remove "neon_type" attribute,
      	use "type" attribute everywhere appropriate.
      	* doc/md.texi: Change references to neon_type to refer to type.
      	* config/arm/vfp.md: Update patterns for attribute changes.
      	* config/arm/arm.c (cortexa7_older_only): Update for attribute change.
      	* config/arm/arm1020e.md: Update for attribute change.
      	* config/arm/cortex-a15-neon.md: Update for attribute change.
      	* config/arm/cortex-a15.md: Update for attribute change.
      	* config/arm/cortex-a5.md: Update for attribute change.
      	* config/arm/cortex-a53.md: Update for attribute change.
      	* config/arm/cortex-a7.md: Update for attribute change.
      	* config/arm/cortex-a8-neon.md: Update for attribute change.
      	* config/arm/cortex-a8.md: Update for attribute change.
      	* config/arm/cortex-a9-neon.md: Update for attribute change.
      	* config/arm/cortex-a9.md: Update for attribute change.
      	* config/arm/cortex-m4-fpu.md: Update for attribute change.
      	* config/arm/cortex-r4f.md: Update for attribute change.
      	* config/arm/iterators.md: Update comment referring to neon_type.
      	* config/arm/iwmmxt.md: Update for attribute change.
      	* config/arm/marvell-pj4.md: Update for attribute change.
      	* config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
      	attribute change.
      	* config/arm/vfp11.md: Update for attribute change.
      
      
      Co-Authored-By: Sofiane Naci <sofiane.naci@arm.com>
      
      From-SVN: r202272
      James Greenhalgh committed
  23. 01 Sep, 2013 1 commit
    • common.opt (fdevirtualize-speculatively): New function. · bbc9396b
      	* common.opt (fdevirtualize-speculatively): New function.
      	* invoke.texi (fdevirtualize-speculatively): Document.
      	* ipa-devirt.c: Include ipa-inline.h
      	(likely_target_p): New function.
      	(ipa_devirt): New function.
      	(gate_ipa_devirt): New function.
      	(pass_data_ipa_devirt): New static var.
      	(pass_ipa_devirt): Likewise.
      	(make_pass_ipa_devirt): New function.
      	* opts.c (default_options): Add OPT_fdevirtualize_speculatively.
      	(common_handle_option): Disable devirtualization when
      	value range profiling is available.
      	* passes.def (pass_ipa_devirt): Add.
      	* timever.def (TV_IPA_DEVIRT): New timevar.
      	* tree-pass.h (make_pass_ipa_devirt):
      
      From-SVN: r202145
      Jan Hubicka committed
  24. 30 Aug, 2013 2 commits
  25. 29 Aug, 2013 1 commit
    • dumpfile.c (dump_loc): Output column number. · 103ff0d6
      2013-08-29  Teresa Johnson  <tejohnson@google.com>
      
      	* dumpfile.c (dump_loc): Output column number.
      	* dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
      	* doc/invoke.texi: Document optall -fopt-info flag.
      	* profile.c (read_profile_edge_counts): Use new dump framework.
      	(compute_branch_probabilities): Ditto.
      	* passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
      	when pass not in any opt group.
      	* pass_manager.h (pass_manager::get_pass_profile): New method.
      	* value-prof.c (check_counter): Use new dump framework.
      	(check_ic_target): Ditto.
      	* coverage.c (get_coverage_counts): Ditto.
      	(coverage_init): Setup new dump framework.
      
      	* testsuite/gcc.dg/pr40209.c: Use -fopt-info.
      	* testsuite/gcc.dg/pr26570.c: Ditto.
      	* testsuite/gcc.dg/pr32773.c: Ditto.
      	* testsuite/g++.dg/tree-ssa/dom-invalid.C: Ditto.
      	* testsuite/gcc.dg/inline-dump.c: New test.
      
      From-SVN: r202077
      Teresa Johnson committed
  26. 27 Aug, 2013 1 commit
  27. 22 Aug, 2013 1 commit
    • i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New. · 3f97cb0b
      * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
      (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
      (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
      (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
      (OPTION_MASK_ISA_AVX2_UNSET): Update.
      (OPTION_MASK_ISA_AVX512F_UNSET): New.
      (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
      (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
      (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
      (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
      OPT_mavx512pf, OPT_mavx512er cases.
      * config/i386/constraints.md (v): New constraint.
      (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
      * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
      (bit_AVX512CD): New.
      * config/i386/driver-i386.c (host_detect_local_cpu): Detect
      AVX512F, AVX512ER, AVX512PF, AVX512CD features.
      * config/i386/i386-c.c (ix86_target_macros_internal):
      Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
      __AVX512PF__.
      * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
      (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
      * config/i386/i386.c (regclass_map, dbx_register_map)
      (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
      (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
      (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
      -mavx512pf options.
      (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
      PTA_AVX512PF, PTA_AVX512CD.  Handle -mavx512f, -mavx512er, -mavx512cd,
      -mavx512pf options.  Fix formatting.
      (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
      targets.  Squash EVEX_SSE_REGS if AVX512F is disabled.
      (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
      -mavx512cd, -mavx512pf options.
      (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
      (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
      (ix86_preferred_output_reload_class): Replace SSE_REGS with
      ALL_SSE_REGS.
      (ix86_hard_regno_mode_ok): Support 512-bit registers.
      (ix86_set_reg_reg_cost): Ditto.
      (x86_order_regs_for_local_alloc): Ditto.
      (MAX_VECT_LEN): Extend to 64-byte.
      (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
      * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
      (TARGET_AVX512ER, TARGET_AVX512CD): New.
      (BIGGEST_ALIGNMENT): Extend to 512-bits.
      (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
      (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
      (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
      (SSE_REG_MODE_P): Support new modes.
      (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
      (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
      (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
      (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
      (REG_CLASS_CONTENTS): Add new registers.
      (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
      (EXT_REX_SSE_REGNO_P): New.
      (HI_REGISTER_NAMES): Add new registers.
      * config/i386/i386.md: Define constants for new registers.
      (mode): Add new 512-bit modes.
      (prefix): Support evex prefix.
      (isa): Support avx512f, noavx512f, fma_avx512f.
      (ssemodesuffix): Add new 512-bit modes.
      (movxi): New.
      (*movxi_internal_avx512f): Ditto.
      (*movdi_internal): Replace constraint "x" with the new constraint "v".
      Support MODE_XI.
      (*movsi_internal): Likewise.
      (*movdf_internal): Likewise.
      (*movsf_internal): Likewise.
      (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
      (<code><mode>3): Likewise.
      * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd): New.
      * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
      with the new constraint "v".
      * config/i386/sse.md (*mov<mode>_internal): Support new registers and
      modes.
      (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
      with the new constraint "v".
      (<sse2>_loaddqu<avxsizesuffix>): Likewise.
      (<sse2>_storedqu<avxsizesuffix>): Likewise.
      (*<plusminus_insn><mode>3): Likewise.
      (<sse>_vm<plusminus_insn><mode>3): Likewise.
      (*mul<mode>3): Likewise.
      (<sse>_vmmul<mode>3): Likewise.
      (<sse>_div<mode>3): Likewise.
      (<sse>_vmdiv<mode>3): Likewise.
      (<sse>_sqrt<mode>2): Likewise.
      (<sse>_vmsqrt<mode>2): Likewise.
      (*<code><mode>3_finite): Likewise.
      (*<code><mode>3) <smaxmin>: Likewise.
      (<sse>_vm<code><mode>3): Likewise.
      (*<code><mode>3) <any_logic>: Likewise.
      (*fma_fmadd_<mode>): Likewise.
      (*fma_fmsub_<mode>): Likewise.
      (*fma_fnmadd_<mode>): Likewise.
      (*fma_fnmsub_<mode>): Likewise.
      (*fma_fmaddsub_<mode>): Likewise.
      (*fma_fmsubadd_<mode>): Likewise.
      (*fmai_fmadd_<mode>): Likewise.
      (*fmai_fmsub_<mode>): Likewise.
      (*fmai_fnmadd_<mode>): Likewise.
      (*fmai_fnmsub_<mode>): Likewise.
      (sse_cvtsi2ss): Likewise.
      (sse_cvtsi2ssq): Likewise.
      (sse_cvtss2si): Likewise.
      (sse_cvtss2si_2): Likewise.
      (sse_cvtss2siq): Likewise.
      (sse_cvtss2siq_2): Likewise.
      (sse_cvttss2si): Likewise.
      (sse_cvtss2siq_2): Likewise.
      (float<sseintvecmodelower><mode>2): Likewise.
      (sse2_cvtsd2si_2): Likewise.
      (sse2_cvtsd2siq_2): Likewise.
      (*<plusminus_insn><mode>3): Likewise.
      (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
      (*<sse4_1_avx2>_mul<mode>3): Likewise.
      (ashr<mode>3): Likewise.
      (<shift_insn><mode>3): Likewise.
      (avx2_<code><mode>3): Likewise.
      (*avx2_<code><mode>3): Likewise.
      (*andnot<mode>3): Likewise.
      (*<code><mode>3) <any_logic>: Likewise.
      (abs<mode>2): Likewise.
      (avx2_permvar<mode>): Likewise.
      (avx2_perm<mode>_1): Likewise.
      (*avx_vpermilp<mode>): Likewise.
      (avx_vpermilvar<mode>3): Likewise.
      (avx2_ashrv<mode>): Likewise.
      (avx2_<shift_insn>v<mode>): Likewise.
      * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
      -mavx512cd.
      * doc/rtl.texi: Document XImode.
      
      
      Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
      Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>
      
      From-SVN: r201915
      Alexander Ivchenko committed
  28. 20 Aug, 2013 1 commit
  29. 19 Aug, 2013 2 commits
    • invoke.texi (-fcilkplus): Clarify that implementation is incomplete. · d3136aeb
      	* doc/invoke.texi (-fcilkplus): Clarify that implementation is
      	incomplete.
      
      From-SVN: r201846
      Aldy Hernandez committed
    • target.def (TARGET_LIBC_HAS_FUNCTION): New target hook. · d33d9e47
      	* target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
      	* builtins.c (default_libc_has_function): New.
      	(gnu_libc_has_function): Ditto.
      	(no_c99_libc_has_function): Ditto.
      	(expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
      	instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
      	(fold_builtin_sincos): Likewise.
      	(fold_builtin_cexp): Likewise.
      	* builtins.def (DEF_C94_BUILTIN): Likewise.
      	(DEF_C99_BUILTIN): Likewise.
      	(DEF_C99_C90RES_BUILTIN): Likewise.
      	(DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
      	definitions to using this define.
      	* config/darwin-protos.h (darwin_libc_has_function): New.
      	* config/darwin.c: (darwin_libc_has_function: Ditto.
      	* config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
      	TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
      	* config/darwin.h: Ditto.
      	* config/elfos.h: Ditto.
      	* config/freebsd.h: Ditto.
      	* config/i386/cygming.h: Ditto.
      	* config/i386/djgpp.h: Ditto.
      	* config/i386/i386-interix.h: Ditto.
      	* config/microblaze/microblaze.h: Ditto.
      	* config/mmix/mmix.h: Ditto.
      	* config/gnu-user.h: Ditto.
      	* config/ia64/hpux.h: Ditto.
      	* config/pa/pa-hpux.h: Ditto.
      	* config/pdp11/pdp11.h: Ditto.
      	* config/picochip/picochip.h: Ditto.
      	* config/linux.h: Ditto.
      	* config/netbsd.h: Ditto.
      	* config/openbsd.h: Ditto.
      	* config/rs6000/aix43.h: Ditto.
      	* config/rs6000/aix51.h: Ditto.
      	* config/rs6000/aix52.h: Ditto.
      	* config/rs6000/aix53.h: Ditto.
      	* config/rs6000/aix61.h: Ditto.
      	* config/rs6000/darwin.h: Ditto.
      	* config/rs6000/linux.h: Ditto.
      	* config/rs6000/linux64.h: Ditto.
      	* config/s390/tpf.h: Ditto.
      	* config/sol2-10.h: Ditto.
      	* config/sol2.h: Ditto.
      	* config/vms/vms.h: Ditto.
      	* config/vxworks.h: Ditto.
      	* config/linux-android.c (linux_android_libc_has_function):
      	New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
      	* config/linux-protos.h (linux_android_libc_has_function):
      	New declaration.
      	* config/i386/i386.c (ix86_libc_has_function): New.
      	* config/i386/i386-protos.h
      	(ix86_libc_has_function): New declaration.
      	* config/i386/i386.md
      	("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
      	("isinf<mode>2): Likewise.
      	* convert.c (convert_to_integer): Using new target hook
      	TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
      	TARGET_C99_FUNCTIONS.
      	* fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
      	* tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
      	* coretypes.h (function_class): New enum for different
      	classes of functions.
      	* defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
      	* doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
      	(TARGET_HAS_SINCOS): Likewise.
      	(TARGET_LIBC_HAS_FUNCTION): New.
      	* doc/tm.texi: Regenerated.
      	* targhooks.h (default_libc_has_function): New declaration.
      	(no_c99_libc_has_function): Ditto.
      	(gnu_libc_has_function): Ditto.
      	* system.h: Add the poisoning of TARGET_C99_FUNCTIONS
      	and TARGET_HAS_SINCOS.
      
      From-SVN: r201838
      Alexander Ivchenko committed